考慮以下TestNG的套房:TestNG的高達6.10忽略後續類在一套如果@BeforeMethod失敗
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name = "TestNG Examples" parallel = "false" thread-count = "1">
<test name = "TestNG Examples">
<classes>
<class name = "com.example.A"/>
<class name = "com.example.B"/>
</classes>
</test>
</suite>
由這些類:
package com.example;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public final class A extends AbstractTest {
@BeforeMethod
public void setUp() {
throw new RuntimeException();
}
@Test
public void test() {
}
}
和
package com.example;
import org.testng.annotations.Test;
public final class B extends AbstractTest {
@Test
public void test() {
System.out.println("B.test()");
}
}
請注意,B.test()
在012之後執行,和兩個類有共同的超類:
package com.example;
import org.testng.annotations.AfterMethod;
public abstract class AbstractTest {
@AfterMethod
public final void tearDown() {
}
}
現在,如果@BeforeMethod
鉤在A
由於某種原因失敗(如在上面的例子),延長了相同的超類(AbstractTest
)隨後套件類是從不運行:
這是的Eclipse的截圖,但我觀察的IntelliJ IDEA相同的行爲和TeamCity也是如此。
- 這兩項測試應該有一個共同的祖先:
以下前提條件必須以重現此問題得到滿足。
- 共同的祖先應該有一個
@AfterMethod
掛鉤。 - 正在運行的第一個測試課程應該有一個失敗的
@BeforeMethod
掛鉤。
這是預期的行爲? 是否在任何地方記錄?
我確認問題。你可以在https://github.com/cbeust/testng/issues/上打開一張票嗎? – juherr
這是什麼版本的TestNG?我試過使用6.11,我似乎無法重現該問題。 @juherr你嘗試了什麼版本? –
@KrishnanMahadevan我使用主分支但還沒有up2date。我只用套件文件重現了這個問題。 – juherr