如何在命令行中针对特定的Gradle构建flavor运行单个单元测试方法

3

我想从命令行运行一个单独的Android测试用例。

在集成开发环境中,我可以右键点击并运行,但是在命令行中使用以下命令失败:

./gradlew test --tests "com.xyz.b.module.TestClass.testToRun"

错误:
> Unknown command-line option '--tests'.

我该如何运行一个单元测试方法?强调一下,我想要运行一个单独的单元测试,而不是用命令行运行一个仪表盘测试。
更新:我有一个相机应用程序。假设我有一个名为usCameraDebug的构建变体。(这意味着美国相机调试)现在你能告诉我如何运行一个名为mySingleTest的单个测试用例吗?
我按照您所说尝试过以下命令:./gradlew test --tests "*mySingleTest"./gradlew app:usCameraDebug test --tests "*mySingleTest" 还有:./gradlew app:usCameraDebugUnitTest --tests "*mySingleTest",但都不起作用。你能根据我的构建变体告诉我要输入什么吗?它在一个名为"app"的模块中,作为默认值。
下面是我想运行的测试代码:
package  com.xyz.cameras.parts
    @Test
        fun mySingleTest(){
            assertEquals(12,13)
        }
1个回答

2
您需要在查找测试名称时在模式中指定通配符,并确保使用模块+flavor。 使用--tests将无法与./gradlew test./gradlew check一起使用。
尝试这个模式 -> ./gradlew :<module>:<flavor> --tests "*包含测试名称的文本*" 例如 -> ./gradlew :profile:testDebug --tests "*my_profile*" 将运行此测试:
@Test
public void my_profile_pageview()

此外,使用--info标志运行可以查看测试本身,或者使用--debug以获得更多输出。例如:./gradlew --info :profile:testDebug --tests "*my_profile*"。"Original Answer"可翻译为"最初的回答"。

我在我的问题中添加了一个更新的部分,你可以看一下吗?你提到的那些东西不起作用。 - j2emanue
@j2emanue 嘿!请查看我的更新答案。我相信这应该适用于您。我认为您可能只需要在测试名称末尾添加一个额外的 *。尝试 ./gradlew app:usCameraDebugUnitTest --tests "*mySingleTest*" 我不认为您需要在 app 前加冒号,但是加上也无妨。./gradlew :app:usCameraDebugUnitTest --tests "*mySingleTest*" - Mark Han
1
这个对我有效:/gradlew :app:usCameraDebugUnitTest --tests "*mySingleTest",谢谢。 - j2emanue

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接