[英]Run specific junit4 categories using gradle
我正在使用gradle在Android手機上運行一些測試。 但是,我希望能夠選擇要運行的測試。 對於我正在使用jUnit4和類別的測試。
這是從jenkins構建和執行測試的方式:
call gradle assembleDebug assembleDebugAndroidTest
call gradle connectedDebugAndroidTest
這是測試的樣子:
@Category(IncludeTest.class)
@Test
public void test_Test_06() throws Exception {
TestData.setUpTest("test_Test_06");
Log.d("Test: Test 6 included");
}
@Category(ExcludeTest.class)
@Test
public void test_Test_07() throws Exception {
TestData.setUpTest("test_Test_07");
Log.d("Test: Test 7 excluded");
}
在我的gradle.build中,我嘗試了以下但沒有成功:
test {
useJUnit {
includeCategories 'com.abc.def.IncludeTest'
excludeCategories 'com.abc.def.ExcludeTest'
}
}
我的結構如下:
/someFolder/gradle.build
/someFolder/app/src/android/java/
在java中,我有一個名為com.abc的包,在該包中有另一個包, def包含我的IncludeTest和ExcludeTest接口。
我在gradle.build中嘗試了不同的路徑來包含/ ExludeTest,但它只是不起作用,所有測試都始終執行。
我還嘗試將includeCategories / excludeCategories放入任務中,並確保該任務實際上已啟動。 但仍然執行所有測試。 看起來像includeCategories / excludeCategories沒有做任何事情。
有什么基本的我做錯了嗎? 還有其他選擇類別的方法嗎?
經過一些研究后,我發現includeCategories / excludeCategories不適用於Android。
我在使用AndroidJUnitRunner時找到了不同的解決方案。 在Gradle中,可以過濾注釋測試。 要包含注釋:
call gradle connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.annotation=com.abc.def.IncludeTest
也可以使用notAnnotation排除注釋。
當然,如果要使用OR / AND組合的多個注釋,則會有語法。
如果您不使用connectedDebugAndroidTest,也可以使用以下內容:
adb shell am instrument -w -e annotation com.android.foo.MyAnnotation com.android.foo/android.support.test.runner.AndroidJUnitRunner
一些文檔: https : //developer.android.com/reference/android/support/test/runner/AndroidJUnitRunner.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.