如何使用命令行在 Gradle 上运行空手道测试

Posted

技术标签:

【中文标题】如何使用命令行在 Gradle 上运行空手道测试【英文标题】:How to run Karate Test on Gradle Using Command line 【发布时间】:2018-11-03 05:22:02 【问题描述】:

我正在查看空手道文档: https://github.com/intuit/karate#command-line

我的文件如下:

跑步者类:

import org.junit.runner.RunWith;
import com.intuit.karate.junit4.Karate;
import cucumber.api.CucumberOptions;

@RunWith(Karate.class)
@CucumberOptions(features = "classpath:feature/country.feature")
public class APITest 

把它放到我的 build.gradle 中:

test 
    // pull cucumber options into the cucumber jvm
    systemProperty "cucumber.options", System.properties.getProperty("cucumber.options")
    // pull karate options into the jvm
    systemProperty "karate.env", System.properties.getProperty("karate.env")
    // ensure tests are always run
    outputs.upToDateWhen  false 

我正在尝试像这样运行 gradle:

./gradlew test -Dtest=APITest

但我收到了这样的回复:

Rafaels-MacBook-Pro:TestProject rafaelpaz$ ./gradlew test -Dtest=APITest
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:compileTestJava
:processTestResources UP-TO-DATE
:testClasses
:test

但是,我看不到我的测试是否通过。我做错了什么?

Gradle 版本:2.14.1

【问题讨论】:

您确定您拥有运行单个测试的语法权限吗:***.com/questions/22505533/… @PeterThomas 再次感谢您帮助彼得,我之前尝试过这些命令并且我能够成功,但只有使用 JUnit,使用空手道我会收到如下错误:FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > No tests found for given includes: [org.gradle.APITest] * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 这是我我做错了,但仍然没有意识到是什么 对不起,我帮不上忙。男人请切换到maven。我将再次在 Twitter 上寻求帮助 @PeterThomas 所有好伙伴,感谢您的帮助!我仍然会进行更多测试!干杯 【参考方案1】:

https://github.com/SreecharanShroff/demos/blob/master/gradle_karate_demo.zip 有一个工作的 gradle karate 演示项目,请根据您的要求更改 .feature 文件。 使用:

gradle 清洁测试

如果您需要更多信息,请告诉我

谢谢,

Sreecharan Shroff

【讨论】:

这就是我真正需要的,Sreecharan!十分感谢你的帮助!我接受了你的回答!干杯伙伴! 嗨@Sreecharan Shroff,我的测试运行成功,但是当我使用 gradle 命令行运行我的测试时,我没有看到生成的报告 html 文件,如果您知道这一点,请提供帮助。跨度> 在 gradle 中,默认情况下报告在 projectFolder/build/reports 中生成。我尝试使用空手道 0.9.2,报告生成正确。您可以从上面的链接尝试我的 gradle karate 项目。请附上您的项目以重现该问题。

以上是关于如何使用命令行在 Gradle 上运行空手道测试的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AWS 上运行带有自动回归测试套件的分析器

如何从命令行在 Windows 上运行 .class 文件?

如何使我的命令行在具有扩展名(.sh)和名称如“weird.sh.sh.sh”的文件上工作

如何通过命令行在服务器上运行php脚本

空手道听众支持

如何使用 CMAKE 从命令行在 Windows 上构建 x86 和/或 x64?