В TestNG была ошибка. Вот ссылка на выпуск GitHub .
Начиная с 7.0.0-бета1 это исправлено. Но вы должны установить -Dtestng.thread.affinity=true
в качестве аргумента JVM. Шаги IntelliJ IDEA: перейдите в «Выполнить» -> «Редактировать конфигурации»:
![dtestng.thread.affinity=true testng dependsOnMethods](https://i.stack.imgur.com/4Uv6w.png)
TestClass1:
import org.testng.annotations.Test;
import org.testng.log4testng.Logger;
public class TestClass1 {
private static final Logger LOGGER = Logger.getLogger(TestClass1.class);
@Test
public void test1() {
LOGGER.warn("TestClass1 - test1. Thread " + Thread.currentThread().getId());
}
@Test(dependsOnMethods = "test1")
public void test2() {
LOGGER.warn("TestClass1 - test2. Thread " + Thread.currentThread().getId());
}
}
TestClass2:
public class TestClass2 {
private static final Logger LOGGER = Logger.getLogger(TestClass1.class);
@Test
public void test1() {
LOGGER.warn("TestClass2 - test1. Thread " + Thread.currentThread().getId());
}
}
TestNG XML:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Default Suite" parallel="classes" thread-count="3">
<test name="example">
<classes>
<class name="com.stackover.project.TestClass1"/>
<class name="com.stackover.project.TestClass2"/>
</classes>
</test>
</suite>
Выход:
[TestClass1] [WARN] TestClass1 - test1. Thread 11
[TestClass1] [WARN] TestClass2 - test1. Thread 12
[TestClass1] [WARN] TestClass1 - test2. Thread 11
===============================================
Default Suite
Total tests run: 3, Passes: 3, Failures: 0, Skips: 0
===============================================
P.S .: Если TestClass1.test1()
завершится неудачей, TestClass1.test2()
будет проигнорировано.