我想为Apache James运行构建版本,它有一个巨大的测试套件,由于与我无关的测试,例如关于RabbyMQ的测试,它正在运行很长时间。因此,我想排除这些,我想从命令行(而不是通过编辑POM)执行此操作。我在 Java 11 开放JDK 上使用 Maven 3.6.3。该项目使用 JUnit5 和专家-sure-fire 插件 2.22.2。
现在,我期望下面的工作:
例如,只运行org.example中的测试方法。MyTest是可以在mvn-Dtest=org.example中执行的测试类。来自命令行的MyTest测试。
但它不起作用。事实上,一旦我将test
参数设置为空字符串以外的任何内容,所有测试都将被跳过。我尝试了一些据说支持的语法...
mvn package -Dtest=*
mvn package -Dtest=".*"
mvn package -Dtest=\!SomethingFishy
mvn package -Dtest='!MavenHeadache'
mvn package -Dtest='!%regex[.*HelpMe.*]'
...但结果总是一样的:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test
(default-test) on project testing-base: No tests were executed!
(Set -DfailIfNoTests=false to ignore this error.) -> [Help 1]
我正在运行< code>package目标,因为它执行完整的构建,但是< code>test的行为是相同的。还尝试指定< code>-Dincludes=... / -Dexcludes=...
,这没有任何影响:所有的测试都会被执行,参数甚至不会出现在< code>mvn -X的输出中...。当将maven-surefire-plugin更新到最新版本3.0.0-M5时,这种行为不会改变。
我理解错了吗?如何在此设置中指定包含/排除?
更新:看起来这是由嵌套项目和/或James的项目结构引起的。如果我输入“叶项目”,例如core
,则包含/排除开始工作:
cd core
mvn test -Dtest=HostTest # will only run HostTest, as expected
mvn test -Dtest=\!HostTest # will run all tests but HostTest, as expected
正如RobertScote所建议的,我已经查看了maven-surefire插件配置,但找不到任何似乎与此行为相关的东西。
错误消息告诉您需要知道的:在第一个运行的项目testing-base
中,没有与您的模式匹配的测试,因此它无法确保您不会对成功有错误的印象。
然后它建议使用-DailIfNoTest=false
选项让maven忽略没有任何与模式匹配的测试的模块(这可能是您需要的)。
我在这个文件中所做的是从一个java文件中执行一个hello.class文件,并使用正确的文件名将其输出作为txt文件存储在以下位置< code>C:\outtest\。但是当我编译上面的文件时,我的程序进入了某种无限循环,永远不会终止。 编辑 : 您好.java
问题内容: 以下工作并打印命令输出: 但是此操作失败(退出状态为1): 有什么建议? 问题答案: 您可以这样做:
在我的根项目中,我有两个子项目具有这种包结构。 在项目1中,我有一个用大规定义的类,就像这样 问题是,如果我运行该测试,它也会分析项目2中的所有内容。我如何排除包com.app.api?
我有一个用gradle构建的大型代码库。我有几个JUnit测试,在构建时运行。 罐子 问题:我如何使用jar提供测试,并允许它们像运行jar一样从命令行运行? 我在SO上找不到任何关于使用gradle分发测试的信息,所有的命令行JUnit示例都不够,因为它们需要手动输入类路径,并且依赖项的数量很大(因此使用gradle Fatjar)。
你可以用命令行选项-x来排除某些任务,让我们用上面的例子来示范一下. 例子 11.2. 排除任务 gradle dist -x test 命令的输出 > gradle dist -x test :compile compiling source :dist building the distribution BUILD SUCCESSFUL Total time: 1 secs 可以看到, tes
问题内容: 我希望能够从命令行运行Junit测试,但是当我运行此命令时 我回来的就是 它是否与Android项目有关?我之前已经运行过该命令,并且没有太多问题。 问题答案: 我只是设法从命令行运行JUnit测试,但是使用adb shell。 命令是 更多细节在这里。