我正在使用gradle构建我的android项目,并且无法运行单个单元测试。我有几个测试类,其中一个是MockServerTest
,我只想在这个类中运行测试方法
我尝试使用gradle -Dtest.single=MockServerTest test
,但结果运行了所有测试,包括其他测试类中的测试
我也尝试了gradle test --tests MockServerTest
,但发生了错误
Test filtering is not supported for given version of junit. Please upgrade junit version to at least 4.6.
但我在gradle文件中使用junit 4.12
testCompile 'junit:junit:4.12'
我正在使用gradle 2.4和com.android.tools.build:gradle:1.2.3
。
另外,如何在单个测试类中运行单个测试方法?
BTW,我可以在AndroidStudio中运行单一测试方法,右键单击测试方法并从菜单中选择run targetTestMethod()
。但是如何在终端实现这一目标呢?我想AndroidStudio也会触发某个命令来执行此操作。我怎么能看到那个命令是什么?
答案 0 :(得分:5)
自己想出来。我必须跑
gradle testDebug --tests com.my.package.TestClassName
这里有两点需要注意
1.您必须使用gradle testDebug
或gradle testRelease
而不是gradle test
。如果您有构建变体,则必须使用gradle testVariantNameDebug
或gradle testVariantNameRelease
2.您必须指定整个限定类名,包括包名。
答案 1 :(得分:1)
您可以使用https://docs.oracle.com/javase/8/docs/api/java/time/ZonedDateTime.html#now--设置测试任务过滤器,如下所示:
android {
testOptions {
unitTests.all {
it.testNameIncludePattern = "*.SomeTest"
}
}
}
您可以在testOptions
Android Gradle plugin DSL和过滤器here上找到更多相关信息。
答案 2 :(得分:0)
您是否尝试过gradle test -Dtest.single=MockServerTest
?可以找到更多信息here。