我需要在单个测试中执行所有3个类,并满足以下要求:
执行Class3中的所有测试。
public class Class1
{
@Test(groups={"test1"})
public void test1()
{
system.out.println("test1");
}
@Test(groups={"test2"})
public void test2()
{
system.out.println("test2");
}
@Test(groups={"test3"})
public void test3()
{
system.out.println("test3");
}
}
第2类
public class Class2
{
@Test(groups={"test1"})
public void test_1()
{
system.out.println("test1");
}
@Test(groups={"test2"})
public void test_2()
{
system.out.println("test2");
}
@Test(groups={"test3"})
public void test_3()
{
system.out.println("test3");
}
}
第3类
public class Class3
{
@Test(alwaysrun="true")
public void test()
{
system.out.println("test");
}
}
为此,我使用了以下testNg xml,但无论我是否包括该组,都会执行Class 1和Class 3中的所有测试。
<test name="Testcase">
<classes>
<groups>
<run>
<include name="test1" />
<exclude name="test2" />
<include name="test3" />
<class name="Class1" />
</run>
</groups>
<groups>
<run>
<exclude name="test1" />
<include name="test2" />
<exclude name="test3" />
<class name="Class2" />
</run>
</groups>
<groups>
<run>
</run>
<class name="Class3" />
</groups>
</classes>
</test>
如果我希望执行上面提到的类文件,请建议TestNg xml文件的正确语法是什么。
答案 0 :(得分:0)
您的XML文件包含以下问题:class
不应属于groups
且群组不属于classes
。
此外,您的代码存在编译问题。最简单的解决方案是注释测试或测试类(您可以将整个类注释为Test并提供组名),然后仅运行该特定组。
示例:
第1课
public class Class1
{
@Test(groups={"smoke"})
public void test1(){
System.out.println("test1");
}
@Test(groups={"func"})
public void test2(){
System.out.println("test2");
}
@Test(groups={"smoke"})
public void test3(){
System.out.println("test3");
}
}
第2课
public class Class2
{
@Test(groups={"func"})
public void test_1(){
System.out.println("test1");
}
@Test(groups={"smoke"})
public void test_2(){
System.out.println("test2");
}
@Test(groups={"func"})
public void test_3(){
System.out.println("test3");
}
}
第3类
@Test(groups = {"smoke"})
public class Class3
{
@Test(alwaysRun=true)
public void test(){
System.out.println("test");
}
}
<强>的testng.xml 强>
<suite name="Regression" >
<test name="Test1">
<groups>
<run>
<include name="smoke"/>
</run>
</groups>
<classes>
<class name="Class1"/>
<class name="Class2"/>
<class name="Class3"/>
</classes>
</test>
</suite>