Я пытаюсь создать два теста, один из которых зависит от выполнения другого. Проект, над которым я работаю, наполнен устаревшим кодом, поэтому я пытаюсь сделать основные части приложения тестируемыми. Первый тест в основном попытается создать соединение с базой данных и установить некоторые статические переменные. Тест2 затем будет использовать соединение и переменные для вставки некоторых данных. Я бы предпочел не делать то, что Test1 делает еще раз в Test2.
Я сделал Test2 зависимым от Test1, так что если Test1 не выполнится, Test2 не выполнится. Но если Test2 не выполнится, я хочу, чтобы его можно было повторно запустить. Когда я пытаюсь сделать это в Intellij IDEA, я получаю следующее:
java.lang.Throwable: Method a.stack.Test2.failingTest() depends on nonexistent group "FirstTest"
Чего мне не хватает?
Test1:
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);
}
}
And 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);
}
}
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>