有没有办法以块的形式划分和运行testng测试而不是全套
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有办法以块的形式划分和运行testng测试而不是全套相关的知识,希望对你有一定的参考价值。
我的testng.xml中有100多个测试,大多数测试由于时间问题而失败,但是当我以块的形式运行它时它工作正常
我试过的一个无效的解决方案是将少量测试分成多个testng.xml文件并逐个运行,寻找备用,我可以在运行时做同样的事情
这是我的testng.xml的样子
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite">
<listeners>
<listener class-name="baseClasses.TestListener"></listener>
</listeners>
<test name="android">
<parameter name="platform" value="android"></parameter>
<classes>
<class name="testCases.android.VerifyLoginLogout" />
<class name="testCases.android.test1" />
<class name="testCases.android.test2" />
...
<class name="testCases.android.test100" />
</classes>
</test>
</suite>
有关如何在块中划分测试并在运行时逐个运行它们的任何建议,所以我不需要将测试划分为多个testng.xml文件
注意 - 甚至尝试使用package wise在testng.xml中运行
答案
据我所知,您希望运行多个批次的测试用例。如果我是正确的那么这很简单。只需将所有测试用例划分为多个test
标记,并使用要在test
标记中执行的测试类。请看下面。
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite">
<listeners>
<listener class-name="baseClasses.TestListener"></listener>
</listeners>
<test name="Android-1">
<parameter name="platform" value="android"></parameter>
<classes>
<class name="testCases.android.VerifyLoginLogout" />
<class name="testCases.android.test1" />
<class name="testCases.android.test2" />
<class name="testCases.android.test3" />
</classes>
</test>
<test name="Android-2">
<parameter name="platform" value="android"></parameter>
<classes>
<class name="testCases.android.test4" />
<class name="testCases.android.test5" />
<class name="testCases.android.test6" />
</classes>
</test>
</suite>
我希望它会对你有所帮助。
另一答案
您希望按如下方式“对”测试进行“分组”:
import org.testng.Assert;
import org.testng.annotations.Test;
public class GroupTestExample {
String message = ".com";
MessageUtil messageUtil = new MessageUtil(message);
@Test(groups = { "functest", "checkintest" })
public void testPrintMessage() {
System.out.println("Inside testPrintMessage()");
message = ".com";
Assert.assertEquals(message, messageUtil.printMessage());
}
@Test(groups = { "checkintest" })
public void testSalutationMessage() {
System.out.println("Inside testSalutationMessage()");
message = "tutorialspoint" + ".com";
Assert.assertEquals(message, messageUtil.salutationMessage());
}
@Test(groups = { "functest" })
public void testingExitMessage() {
System.out.println("Inside testExitMessage()");
message = "www." + "tutorialspoint"+".com";
Assert.assertEquals(message, messageUtil.exitMessage());
}
}
然后在您的套件中运行特定组:
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name = "Suite1">
<test name = "test1">
<groups>
<run>
<include name = "functest" />
</run>
</groups>
<classes>
<class name = "GroupTestExample" />
</classes>
</test>
</suite>
参考:Tutorials Point: TestNG - Group Test
以上是关于有没有办法以块的形式划分和运行testng测试而不是全套的主要内容,如果未能解决你的问题,请参考以下文章
python 在Quantopian中创建一个管道实例并以块的形式运行以避免内存过载。包括管道的常见导入。