我在類似於this answer中描述的設置中使用JUnit類別和ClassPathSuite。總結一下:如何使用Ant在類別/套件中運行所有JUnit測試?
public interface FastTests {
}
@RunWith(Categories.class)
@Categories.IncludeCategory(FastTests.class)
@Suite.SuiteClasses(AllTests.class)
public class FastTestSuite {
}
@RunWith(ClasspathSuite.class)
public class AllTests {
}
...其中AllTests中利用了ClasspathSuite庫。
測試類是這樣的FastTests類別的一部分應該是這樣的:
@Category(FastTests.class)
public class StringUtilsTest {
// ...
}
當我跑在我的IDE「FastTestSuite」,與FastTests註釋所有測試執行,漂亮&平穩:
現在,我想要做同樣的事情用Ant。 (令我吃驚的是,我無法輕易地在SO上找到這個指示。)換句話說,我需要一個Ant目標,它可以用FastTests註釋運行所有測試。
我使用<test>
或<batchtest>
嘗試了一些簡單的方法...
<junit showoutput="true" printsummary="yes">
<test name="fi.foobar.FastTestSuite"/>
<formatter type="xml"/>
<classpath refid="test.classpath"/>
</junit>
...但沒有運氣,到目前爲止。
編輯:除了IDE,它正常工作與JUnitCore在命令行上:
$ java -classpath "classes:WebContent/WEB-INF/lib/*" org.junit.runner.JUnitCore fi.foobar.FastTestSuite
.............
Time: 0.189
OK (13 tests)
是name =「...」類似org/test/TestSuite的路徑還是在包註釋org.test.TestSuite中?什麼是錯誤? – oers 2011-06-03 11:00:13
@oers:後者;完全合格的類名。沒有真正的錯誤消息,它只是...失敗。 'unittest-fast: [junit]正在運行fi.foobar.FastTestSuite [junit]測試運行:1,失敗:0,錯誤:1,所用時間:0.053秒 [junit] Test fi.foobar.FastTestSuite FAILED' – Jonik 2011-06-03 11:24:00
將格式化程序更改爲純文本,並將打印摘要更改爲withOutAndErr。這應該顯示錯誤的原因。我認爲那裏有個例外。您的設置絕對是執行套件的正確方法。 – oers 2011-06-03 11:32:40