【问题标题】:How do I include/exclude a JUnit 5 `ParameterizedTest` by name in Maven如何在 Maven 中按名称包含/排除 JUnit 5 `ParameterizedTest`
【发布时间】:2020-02-06 06:57:53
【问题描述】:

我有一个参数化的 JUnit 5 测试,例如

@EnumSource(Mode.class)
@ParameterizedTest void shouldRunWithMode(Mode mode) {
    ...

我想排除在 Maven 中运行的枚举案例之一,如 here 所述:

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.2</version>
    <configuration>
        <test>!testpackage.SomeTest#shouldRunWithMode[3 three]</test>
    </configuration>
</plugin>

同样的事情没有! 意味着包含,即只执行这个测试。

我尝试了排除表达式和方括号,但我没有找到使它起作用的组合。

一个演示项目是on GitHub

【问题讨论】:

  • 首先,我建议升级到最新版本的 maven-surefire-pugin,因为 JUnit Jupiter 平台已经有所改进……因为您引用的是 2.22.2 版本,但文档是 3.0。 0-M4 ...
  • 感谢@khmarbaise 的提示。这是一个里程碑式的版本,但值得一试......但它没有帮助:-/
  • 检查语法因为你的例子给出了包testpackage而不是pkg/..此外我会检查使用SomeTest.class#shouldRunWithMode...
  • 我只有testpackage,没有pkg。添加 .class 并没有帮助。
  • 您使用的是点而不是/,请参阅文档......

标签: maven junit5 maven-surefire-plugin parameterized-unit-test parameterized-tests


【解决方案1】:

我挖掘了代码,发现没有代码。它显然只在 JUnit 4 上受支持。

我将其报告为错误SUREFIRE-1753

【讨论】:

    猜你喜欢
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 2011-01-27
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 2018-12-21
    • 1970-01-01
    相关资源
    最近更新 更多