当我使用Java 8方法引用双冒号operator(::)和new运算符(例如MyType::new)时,我在Spring of Spring Tool套件(STS)中遇到此错误:
无法解析org.eclipse.jdt.annotation.NonNull类型.它是从所需的.class文件间接引用的
如何摆脱这个错误?
如何在Jacoco Gradle中设置最小代码覆盖率?
如果不满足,我希望构建失败.
如何仅运行测试用例的一种方法以使用 Gradle 进行调试?我试过了:
gradle test -tests example.TestFoo#testMethod1 --debug-jvm
Run Code Online (Sandbox Code Playgroud)
但最终出现以下错误:
No tests found for given includes: example.TestFoo#testMethod1
Run Code Online (Sandbox Code Playgroud)
测试TestFoo类有testMethod1(),testMethod2()等等。
使用 Gradle 及其 JUnit 4 支持,我可以使用如下--tests选项选择特定测试:
$ ./gradlew test --tests de.mp.BarMT
Run Code Online (Sandbox Code Playgroud)
此选项在使用 JUnit 5 Gradle 任务时无效。test从命令行使用任务时,它会被静默忽略。真正的工作是由junitPlatformTest反正完成的,它不支持该选项:
$ ./gradlew clean junitPlatformTest --tests de.mp.BarMT
…
Problem configuring task :junitPlatformTest from command line.
> Unknown command-line option '--tests'.
Run Code Online (Sandbox Code Playgroud)
JUnit 5 插件是否支持选择特定测试?
我知道怎么说
gradle test --tests mypackage.MyTest
Run Code Online (Sandbox Code Playgroud)
但如何指定多个呢?
gradle test --tests mypackage.MyTest,mypackage.model.ModelTest,BasicTests
Run Code Online (Sandbox Code Playgroud)
这似乎只是随机运行其中一项测试。
gradle test --tests mypackage.MyTest mypackage.model.ModelTest BasicTests
Run Code Online (Sandbox Code Playgroud)
这告诉我
在根项目“myproject”中找不到任务“mypackage.model.ModelTest”。
我阅读了很多手册和教程(以及一些 SO 帖子),但发现没有明确提及答案。但我看到有人传递 --tests "somepackage.*" 作为参数,所以我认为空格周围的引号可能会有所帮助。
gradle test --tests "mypackage.MyTest mypackage.model.ModelTest BasicTests"
Run Code Online (Sandbox Code Playgroud)
这不会很快失败,但不幸的是只运行列表中的第一个测试。
所以我想我只是被“--tests”中的复数形式误导了,并且没有办法真正给出一个列表,对吗?
我有一个 Spring 项目,我在其中编写了一些单元和集成测试。现在我想创建自定义任务来运行所有单元测试、所有集成测试和一个运行两者的任务。但是我该怎么做呢?
我正在查看空手道文档: 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 {}
Run Code Online (Sandbox Code Playgroud)
将其放入我的 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 }
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试像这样运行 gradle:
./gradlew test -Dtest=APITest
Run Code Online (Sandbox Code Playgroud)
但我得到这样的回应:
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
Run Code Online (Sandbox Code Playgroud)
但是,我看不到我的测试是否通过。我究竟做错了什么?
摇篮版本:2.14.1
gradle ×6
java ×3
build.gradle ×1
eclipse ×1
gradle-task ×1
gradlew ×1
jacoco ×1
java-8 ×1
junit ×1
junit5 ×1
karate ×1
spring ×1
task ×1
testing ×1
unit-testing ×1