Sunday, July 7, 2024

Dependency on 'single' Test Methods , 'Multiple' test methods:

Dependency on 'single' Test Methods , 'Multiple' test methods:

In TestNG, dependencies between test methods can be defined using the dependsOnMethods attribute of the @Test annotation. This allows you to specify that a particular test method should only be executed if certain other test methods have been successfully executed.

 

package TestNGAsserionsBasics;

import org.testng.annotations.Test;

public class TestMethodWithDependency {

            @Test

            public void login()

            {

                        System.out.println("in login ");

                        //   add some excpetion and check

//                     throw new NullPointerException();

//                       Assert.assertTrue(false);      //    making this method failing

                        //   it will check given value is true or not

                        // if given value is true- it will pass test method

                        // if given value is false -it will fail test method

            }

            // Define dependency for Test method=

            // this test method depends on login test method,

            //if login method is failing. it will not execute create order method

            // it will skip createorder method

            @Test(dependsOnMethods = "login")

            public void createOrder()

            {

                        System.out.println("createOrder ");

            }

}

o/p:

[RemoteTestNG] detected TestNG version 7.0.0

in login

FAILED: login

java.lang.AssertionError: did not expect to find [true] but found [false]

            at org.testng.Assert.fail(Assert.java:97)

            at org.testng.Assert.failNotEquals(Assert.java:969)

            at org.testng.Assert.assertTrue(Assert.java:43)

            at org.testng.Assert.assertTrue(Assert.java:53)

            at TestNgBasics.TestAnontWithDependencyOnMethod.login(TestAnontWithDependencyOnMethod.java:14)

            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)

            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

            at java.base/java.lang.reflect.Method.invoke(Method.java:564)

            at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)

            at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:584)

            at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:172)

            at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)

            at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:804)

            at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:145)

            at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)

            at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)

            at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

            at org.testng.TestRunner.privateRun(TestRunner.java:770)

            at org.testng.TestRunner.run(TestRunner.java:591)

            at org.testng.SuiteRunner.runTest(SuiteRunner.java:402)

            at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:396)

            at org.testng.SuiteRunner.privateRun(SuiteRunner.java:355)

            at org.testng.SuiteRunner.run(SuiteRunner.java:304)

            at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)

            at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)

            at org.testng.TestNG.runSuitesSequentially(TestNG.java:1180)

            at org.testng.TestNG.runSuitesLocally(TestNG.java:1102)

            at org.testng.TestNG.runSuites(TestNG.java:1032)

            at org.testng.TestNG.run(TestNG.java:1000)

            at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)

            at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)

            at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

SKIPPED: createOrder

java.lang.Throwable: Method TestAnontWithDependencyOnMethod.createOrder()[pri:0, instance:TestNgBasics.TestAnontWithDependencyOnMethod@76ed1b7c] depends on not successfully finished methods

            at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:99)

            at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)

            at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)

            at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

            at org.testng.TestRunner.privateRun(TestRunner.java:770)

            at org.testng.TestRunner.run(TestRunner.java:591)

            at org.testng.SuiteRunner.runTest(SuiteRunner.java:402)

            at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:396)

            at org.testng.SuiteRunner.privateRun(SuiteRunner.java:355)

            at org.testng.SuiteRunner.run(SuiteRunner.java:304)

            at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)

            at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)

            at org.testng.TestNG.runSuitesSequentially(TestNG.java:1180)

            at org.testng.TestNG.runSuitesLocally(TestNG.java:1102)

            at org.testng.TestNG.runSuites(TestNG.java:1032)

            at org.testng.TestNG.run(TestNG.java:1000)

            at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)

            at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)

            at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

===============================================

    Default test

    Tests run: 2, Failures: 1, Skips: 1

===============================================

===============================================

Default suite

Total tests run: 2, Passes: 0, Failures: 1, Skips: 1

===============================================

alwaysRun = true:

 

package TestNGAsserionsBasics;

import org.testng.Assert;

import org.testng.annotations.Test;

public class TestMethodWithDependency {

            @Test

            public void login()

            {

                        System.out.println("in login ");

                        Assert.assertTrue(false);        //    making this method failing

                        //  fail

            }

            // even if dependent method i.e login() is failing,  it will execute current test method always

            //i.e  createOrder method  by writing alwaysRun = true

            @Test(dependsOnMethods = "login", alwaysRun = true)

            public void createOrder()

            {

                        System.out.println("createOrder ");

            }

}

o/p:

[RemoteTestNG] detected TestNG version 7.0.0

in login

createOrder

PASSED: createOrder

FAILED: login

java.lang.AssertionError: did not expect to find [true] but found [false]

            at org.testng.Assert.fail(Assert.java:97)

            at org.testng.Assert.failNotEquals(Assert.java:969)

            at org.testng.Assert.assertTrue(Assert.java:43)

            at org.testng.Assert.assertTrue(Assert.java:53)

            at TestNgBasics.TestAnontWithDependencyOnMethod2.login(TestAnontWithDependencyOnMethod2.java:14)

            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)

            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

            at java.base/java.lang.reflect.Method.invoke(Method.java:564)

            at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)

            at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:584)

            at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:172)

            at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)

            at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:804)

            at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:145)

            at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)

            at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)

            at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

            at org.testng.TestRunner.privateRun(TestRunner.java:770)

            at org.testng.TestRunner.run(TestRunner.java:591)

            at org.testng.SuiteRunner.runTest(SuiteRunner.java:402)

            at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:396)

            at org.testng.SuiteRunner.privateRun(SuiteRunner.java:355)

            at org.testng.SuiteRunner.run(SuiteRunner.java:304)

            at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)

            at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)

            at org.testng.TestNG.runSuitesSequentially(TestNG.java:1180)

            at org.testng.TestNG.runSuitesLocally(TestNG.java:1102)

            at org.testng.TestNG.runSuites(TestNG.java:1032)

            at org.testng.TestNG.run(TestNG.java:1000)

            at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)

            at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)

            at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

===============================================

    Default test

    Tests run: 2, Failures: 1, Skips: 0

===============================================

===============================================

Default suite

Total tests run: 2, Passes: 1, Failures: 1, Skips: 0

===============================================

Dependency on  "Multiple" Test methods:

           

package TestNGAsserionsBasics;

import org.testng.Assert;

import org.testng.annotations.Test;

public class TestMethodWithDependency2 {

            @Test

            public void login()

            {

                        System.out.println("in login ");

               Assert.assertTrue(false);     //    making this method failing

            }          

           

            @Test

            public void connectDB()

            {

                        System.out.println("in connectDB ");  

            }

           

            //  depends on methods = "login","connectDB, alwaysRun = true

 // even if dependent method i.e login is failing,  it will execute current test method i.e

            //   createOrder method

//         @Test(dependsOnMethods = {"login","connectDB"})

            @Test(dependsOnMethods = {"login","connectDB"},alwaysRun = true)

            public void createOrder()

            {

                        System.out.println("createOrder ");

            }

 

}

o/p:

[RemoteTestNG] detected TestNG version 7.0.0

in connectDB

in login

createOrder

PASSED: connectDB

PASSED: createOrder

FAILED: login

java.lang.AssertionError: did not expect to find [true] but found [false]

            at org.testng.Assert.fail(Assert.java:97)

            at org.testng.Assert.failNotEquals(Assert.java:969)

            at org.testng.Assert.assertTrue(Assert.java:43)

            at org.testng.Assert.assertTrue(Assert.java:53)

            at TestNgBasics.TestAnontWithDependencyOnMethod2.login(TestAnontWithDependencyOnMethod2.java:14)

            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)

            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

            at java.base/java.lang.reflect.Method.invoke(Method.java:564)

            at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)

            at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:584)

            at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:172)

            at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)

            at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:804)

            at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:145)

            at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)

            at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)

            at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

            at org.testng.TestRunner.privateRun(TestRunner.java:770)

            at org.testng.TestRunner.run(TestRunner.java:591)

            at org.testng.SuiteRunner.runTest(SuiteRunner.java:402)

            at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:396)

            at org.testng.SuiteRunner.privateRun(SuiteRunner.java:355)

            at org.testng.SuiteRunner.run(SuiteRunner.java:304)

            at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)

            at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)

            at org.testng.TestNG.runSuitesSequentially(TestNG.java:1180)

            at org.testng.TestNG.runSuitesLocally(TestNG.java:1102)

            at org.testng.TestNG.runSuites(TestNG.java:1032)

            at org.testng.TestNG.run(TestNG.java:1000)

            at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)

            at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)

            at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

===============================================

    Default test

    Tests run: 3, Failures: 1, Skips: 0

===============================================

===============================================

Default suite

Total tests run: 3, Passes: 2, Failures: 1, Skips: 0

===============================================

No comments:

Post a Comment

git commands MCQ

 Here are some multiple-choice questions (MCQs) on Git commands relevant for Selenium: 1. Which Git command is used to clone a remote reposi...