如何在针对特定 Gradle 构建风格的同时从命令行运行单个单元测试方法
Posted
技术标签:
【中文标题】如何在针对特定 Gradle 构建风格的同时从命令行运行单个单元测试方法【英文标题】:How to run a single unit test method from command line while targeting a specific Gradle build flavor 【发布时间】:2019-11-25 04:16:18 【问题描述】:我正在尝试从命令行仅运行一个 android 测试用例。
在 IDE 中我可以右键单击并运行,但在 CLI 中会失败:
./gradlew test --tests "com.xyz.b.module.TestClass.testToRun"
错误:
> Unknown command-line option '--tests'.
如何运行单个 UNIT TEST 方法?我想强调我想运行单个单元测试,而不是从命令行进行仪器测试。
更新:我有一个相机应用。想象一下,我有一个名为 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】:在查找测试名称时需要在模式中指定通配符,并确保使用模块+风味。 --tests
不适用于 ./gradlew test
或 ./gradlew check
试试这个模式 -> ./gradlew :<module>:<flavor> --tests "*textThatTestNameContains*"
示例->
./gradlew :profile:testDebug --tests "*my_profile*"
将运行此测试:
@Test
public void my_profile_pageview()
此外,使用--info
标志运行有助于查看测试本身或--debug
以获得更多输出。例如
./gradlew --info :profile:testDebug --tests "*my_profile*"
【讨论】:
我放了一个更新的 .我的问题中的部分,你能检查一下。你提到的事情不起作用 @j2emanue 嘿!检查我更新的答案。我相信这应该对你有用。我认为您可能只需要在测试名称的末尾加上一个额外的*
。试试./gradlew app:usCameraDebugUnitTest --tests "*mySingleTest*"
我认为你不需要在应用程序前加一个冒号,但添加它不会有什么坏处。 ./gradlew :app:usCameraDebugUnitTest --tests "*mySingleTest*"
这个对我有用:/gradlew :app:usCameraDebugUnitTest --tests "*mySingleTest",谢谢以上是关于如何在针对特定 Gradle 构建风格的同时从命令行运行单个单元测试方法的主要内容,如果未能解决你的问题,请参考以下文章
如何针对构建持续时间和 RAM 使用优化 gradle 构建性能?