我的TestNG测试如下:
public class Tests2 {
@Test(priority = 10)
public void Test1() {
System.out.println("+++++++++Running Test1++++++++++++");
throw new SkipException("Skipping the test");
}
@Test(priority = 20)
public void Test2() {
System.out.println("+++++++++Running Test2++++++++++++");
}
@Test(priority = 30, dependsOnMethods = {"Test1","Test2"})
public void Test3() {
System.out.println("+++++++++Running Test3++++++++++++");
}
}
如果Test1或Test2中的任何一个被传递,我希望我的Test3被执行。TestNG的工作方式似乎总是检查Test1和Test2是否都被传递。有没有办法可以将逻辑AND更改为逻辑OR。我还尝试过指定像这样的依赖方法,但运气不好
dependsOnMethods = {("Test1"),("Test2")})
我还尝试了依赖组,但这再次检查是否所有相应的测试都在逻辑与中传递。运行上述测试后,我将获得以下输出:
+++++++++Running Test1++++++++++++
+++++++++Running Test2++++++++++++
PASSED: Test2
SKIPPED: Test1
org.testng.SkipException: Skipping the test
at com.Tests.Tests2.Test1(Tests2.java:12)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
at org.testng.SuiteRunner.run(SuiteRunner.java:240)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1123)
at org.testng.TestNG.run(TestNG.java:1031)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:115)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:207)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:178)
SKIPPED: Test3
===============================================
Default test
Tests run: 3, Failures: 0, Skips: 2
===============================================
===============================================
Default suite
Total tests run: 3, Failures: 0, Skips: 2
===============================================
依赖于方法(dependsOnMethods)只告诉单元测试的运行顺序。这并不意味着这些测试应该通过或失败。
你可以通过编程来完成
public class Tests2 {
private boolean testOnePassed=false;
private boolean testTwoPassed=false;
@Test(priority = 10)
public void Test1() {
System.out.println("+++++++++Running Test1++++++++++++");
testTwoPassed = false// based on your custom condition
throw new SkipException("Skipping the test");
}
@Test(priority = 20)
public void Test2() {
System.out.println("+++++++++Running Test2++++++++++++");
testTwoPassed = true// based on your custom condition
}
@Test(priority = 30)
public void Test3() {
if(testOnePassed || testTwoPassed){
System.out.println("+++++++++Running Test3++++++++++++");
}
}
}
主要内容:1. dependOnMethods示例,2. dependsOnGroups示例有时,我们可能需要以特定顺序调用测试用例中的方法,或者可能希望在方法之间共享一些数据和状态。 TestNG支持这种依赖关系,因为它支持在测试方法之间显式依赖的声明。 TestNG允许指定依赖关系: 在注释中使用属性,或者 在注释中使用属性。 在TestNG中,我们使用和来实现依赖测试。 如果依赖方法失败,则将跳过所有后续测试方法。 为了方便演示使用,首先创建一个 Maven 项目: DependO
这项测试似乎不能正常进行。为什么?我需要一个脚本,它接受第一个参数,检查它是哪个字母,并完成这项工作。如果字母是a、b、c或d,则退出,否则为右。
我已经使用Spring Initializer、嵌入式Tomcat Thymeleaf模板引擎生成了一个Spring Boot web应用程序,并将其打包为一个可执行的JAR文件。 使用的技术: Spring引导1.4.2。释放,Spring4.3.4。释放,胸腺2.1.5。释放,Tomcat嵌入8.5.6,Maven 3,Java8 我有一个测试: 但是我运行测试时遇到了这个错误:
以下是我的行动: 我可以右键单击一个测试文件并选择test file,但当它运行时,它找不到该类。我在以下方面看到了错误: Ftharness是我的项目的顶级目录,而src/TestNG是下面包含TestNG测试的目录。我尝试过各种改变都没有成功。有人能帮忙吗?
我试图使用XML和TestNG运行一个测试套件,但是我总是同时使用Eclipse和命令行得到相同的消息: 该文件已正确读取,但测试似乎没有运行。 以下是我的testng.xml的内容: 这是我的目录结构在Eclipse中的样子: 此外,这也是我试图通过命令行运行测试套件的方式: 我尝试过通过eclipse清理项目,但似乎没有帮助。我也试过跑步: < code>mvn clean,但它也没有完成工作
共设5个测试班。每一个都使用@Factory(dataprovider=“data”)初始化。我想实现的是,每个测试类中的测试方法应该与dataprovider实例并行运行。此外,测试类应该并行运行。 如下所示。TestClass1应该并行运行dataprovider实例。因此,测试类TestClass1的所有方法将为dataprovider实例并行运行。 data-provider-thread