忽略 Maven/Scala 单元测试文件

发布于 2024-10-03 20:01:03 字数 500 浏览 5 评论 0原文

我正在使用 Scala (JUnit 4) 为 Java 项目编写单元测试用例。我正在使用 Maven 运行测试。

我为测试编写了一个 src/test/scala/com.xxx.BaseTest 类来提供一些常见的功能(@BeforeClass 等),但没有实际的 <代码>@Test 案例。

每当我在命令行上使用 mvn 运行测试时,它都会坚持尝试在 BaseTest 类中查找测试,并收到错误,因为不存在。

除了使用 @Ignore 之外,还有什么方法可以让 Maven/Scala/Surefire 不尝试运行 BaseTest 类吗?添加 @Ignore 并不是什么大问题,但我的测试运行显示比我实际使用标签“Skipped: 1”多了一个测试。

更新:我找到了解决方案。我将 BaseTest 重命名为 Base; Maven 现在忽略它。还有其他办法吗?

I am writing my unit test cases for a Java project using Scala (JUnit 4). I am running the tests using Maven.

I have written a src/test/scala/com.xxx.BaseTest class for the tests to provide some common functionality (@BeforeClass, etc.), but no actual @Test cases.

Whenever I run the tests using mvn on the command line, it insists on trying to look for tests in the BaseTest class, and gets an error because there are none present.

Other than using an @Ignore, is there any way to have Maven/Scala/Surefire not try to run the BaseTest class? Adding the @Ignore is not a big deal, but my test run shows one more test than I actually have with the label "Skipped: 1".

UPDATE: I found a solution. I renamed BaseTest to Base; Maven now ignores it. Is there any other way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黑色毁心梦 2024-10-10 20:01:03

您可以重命名基测试类,使其不以 *Test 结尾,例如 BaseTestCase.java。这就是我推荐的。

最有可能的maven使用surefire插件执行测试,所以你也可以配置surefire跳过 BaseTest.java 的插件。我认为,默认情况下,surefire 假定所有以 *Test 结尾的类都是测试类。 pom.xml 中类似这样的内容。

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <excludes>
            <exclude>**/BaseTest.java</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>

You can either rename the base test class not to have *Test ending, for example BaseTestCase.java. This is what I would recommend.

Most likely maven executes tests with surefire plugin, so alternatively you just can configure surefire plugin to skip BaseTest.java. I think, by default surefire assumes that all classes ending with *Test are test classes. Something like this in the pom.xml.

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <excludes>
            <exclude>**/BaseTest.java</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文