Я пытаюсь создать два теста, один из которых зависит от выполнения другого.Проект, над которым я работаю, наполнен устаревшим кодом, поэтому я пытаюсь сделать основные части приложения тестируемыми.Первый тест в основном будет пытаться создать соединение с базой данных и установить некоторые статические переменные.Test2 будет использовать соединение и переменные для вставки некоторых данных.Я бы предпочел не делать то, что 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);
}
}
И 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>