【问题标题】:Running Fitnesse Tests with maven使用 maven 运行 Fitnesse 测试
【发布时间】:2018-03-07 09:44:10
【问题描述】:

我为我的 Fitnesse 测试用例创建了 JUnit-tests:

import org.junit.runner.RunWith;
import fitnesse.junit.FitNesseRunner;
@RunWith(FitNesseRunner.class)
@FitNesseRunner.Suite("mysuite")
@FitNesseRunner.FitnesseDir(".")
@FitNesseRunner.OutputDir("./target/fitnesse-results")
public class RunFitnesseTestMySuite {
}

现在我可以像 Eclipse 中的普通 JUnittestcase 一样执行此测试。

但是,maven完全忽略了这个测试。我所有的其他 JUnits 都由 maven 执行,但不是这个特定的 Fitnesse 测试。

这对我来说似乎很奇怪,因为 @RunWith 是一个普通的 JUnitannotation,所以我希望 maven 也可以运行这些测试。

有什么想法吗?

【问题讨论】:

  • JUnit 4.12 和 Maven 调试日志没有显示任何表明错误或异常情况的信息。 Maven 似乎不存在这些测试。
  • 是的。 Maven 在同一个包中运行其他普通的 JUnit 测试用例。
  • 我没有任何测试方法。但即使我使用fail(); 添加一个虚拟方法,测试也不会被执行。

标签: maven maven-3 junit4 fitnesse fitnesse-slim


【解决方案1】:

您可能尚未配置 Surefire 以使用非默认名称运行测试。您的测试类与 surefire 的默认值不匹配,因此只有在您将测试配置为显式运行时才会运行。来自surefire documentation:

默认情况下,Surefire 插件会自动包含所有测试 具有以下通配符模式的类:

  • "**/Test*.java" - 包括其所有子目录和所有 Java 以“Test”开头的文件名。
  • "**/*Test.java" - 包括所有 它的子目录和所有以“Test”结尾的 Java 文件名。
  • "**/*Tests.java" - 包括其所有子目录和所有 Java 以“Tests”结尾的文件名。
  • "**/*TestCase.java" - 包括所有 它的子目录和所有以“TestCase”结尾的 Java 文件名。

如果测试类不遵循任何这些命名约定,那么 配置 Surefire 插件并指定要包含的测试。

在你的情况下,我希望你想使用类似的东西:

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.21.0</version>
        <configuration>
          <includes>
            <include>**/*Suite.java</include>
          </includes>
        </configuration>
      </plugin>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多