2016-07-25 112 views
1

我想從我有Android Studio中的集成測試中的UI測試一個單獨的任務運行單元測試,不幸的是我在的build.gradle使用排除搖籃@LargeTest

apply plugin: 'com.android.application' 

文件,所以我無法添加自定義測試任務,據我所知。由於UI測試被標記爲「@測試」,並延長InstrumentationTestCase他們得到運行時

gradle connectedCheck 

被稱爲這是不需要的,而不是我想要一個gradle這個命令來運行UI測試和一個運行單元測試。我認爲我能夠將UI測試標記爲LargeTests,但無法完成可以執行此操作的Gradle任務。我無法使用build.gradle中的「測試」任務,因爲我們使用的是com.android.application插件和建議?

感謝

+0

我相信這將有助於。 http://stackoverflow.com/questions/23046259/is-there-a-way-to-only-run-a-specific-set-of-tests-in-an-android-gradle-project – DeeV

+0

即使使用testInstrumentationRunner「android .support.test.runner.AndroidJUnitRunner「testInstrumentationRunnerArgument'notAnnotation','android.test.suitebuilder.annotation.LargeTest'當調用gradle cAT時,它嘗試運行帶有@LargeTest的類標記,並且失敗,出現異常」No runnable methods「和我永遠也不能稱之爲大型測試 – CroatianBlackhawk

回答

1

什麼結束了,我的工作是增加了使用

@LargeTest 

import android.support.test.filters.LargeTest; 

註釋我需要的測試,然後添加以下行的build.gradle

if(!project.hasProperty('android.testInstrumentationRunnerArguments.annotation')) { 
     testInstrumentationRunnerArgument 'notAnnotation', 'android.support.test.filters.LargeTest' 
    } 

這種方式,除非我在命令行中指定運行大型測試,它們將被忽略。要運行大型測試使用:

gradle cAT -Pandroid.testInstrumentationRunnerArguments.annotation=android.support.test.filters.LargeTest 
0

您可以通過命令行執行此操作,而無需修改的build.gradle文件:

./gradlew cAT -Pandroid.testInstrumentationRunnerArguments.notAnnotation=android.test.suitebuilder.annotation.LargeTest