簡體   English   中英

使用gradle運行特定的junit4類別

[英]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包含我的IncludeTestExcludeTest接口。

我在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM