方法取决于不存在的组--Testng

use*_*843 7 java xml testing legacy testng

我正在尝试创建两个测试,其中一个依赖于另一个的执行.我正在处理的项目充满了遗留代码,所以我试图使应用程序的主要部分可测试.第一个测试基本上会尝试创建一些与数据库的连接并设置一些静态变量.然后,Test2将使用连接和变量来插入一些数据.我宁愿不做Test1在Test2中再做一次的事情.

我已经使Test2依赖于test1,因此如果Test1失败,Test2将不会执行.但如果Test2失败,我希望它能够重新运行.当我在Intellij IDEA中尝试这个时,我得到以下内容:

java.lang.Throwable: Method a.stack.Test2.failingTest() depends on nonexistent group "FirstTest"
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

测试1:

package a.stack;

import org.testng.Assert;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;

/**
* The First test
*/
@Test(groups = {"FirstTest"})
public class Test1 {

    public void init(){
        // Initialize something which other tests should use
        Assert.assertTrue(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

和Test2:

package a.stack;

import org.testng.Assert;
import org.testng.annotations.Test;

/**
*
*/
@Test(groups = {"OtherTests"}, dependsOnGroups = {"FirstTest"})
public class Test2 {
    public void failingTest(){
        Assert.assertTrue(false);
    }
}
Run Code Online (Sandbox Code Playgroud)

testng.xml文件:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="test" verbose="1">
    <test name="basic" junit="false">
        <groups>
            <run>
                <include name="FirstTest"/>
                <include name="OtherTests"/>
            </run>
        </groups>
        <packages>
            <package name="a.*"/>
        </packages>
    </test>
</suite>
Run Code Online (Sandbox Code Playgroud)

Ced*_*ust 0

您确定您指定的包包含该组中的方法吗?

  • 你好塞德里克,也许你应该将这个答案改写为更多的陈述而不是问题。 (2认同)