【问题标题】:Ignoring Maven/Scala unit test files忽略 Maven/Scala 单元测试文件
【发布时间】:2010-11-24 14:26:27
【问题描述】:

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

我为测试编写了一个src/test/scala/com.xxx.BaseTest 类以提供一些通用功能(@BeforeClass 等),但没有实际的@Test 案例。

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

除了使用@Ignore,还有什么方法可以让Maven/Scala/Surefire 不尝试运行BaseTest 类?添加@Ignore 没什么大不了的,但我的测试运行显示的测试比我实际使用标签“跳过:1”的测试多。

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

【问题讨论】:

    标签: scala unit-testing maven-2


    【解决方案1】:

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

    maven 最有可能使用surefire plugin 执行测试,因此您也可以配置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>
    

    【讨论】:

    • 我尝试了第二个建议,但 id 不起作用。也许与它是一个 Scala 测试文件有关。
    猜你喜欢
    • 2015-09-18
    • 1970-01-01
    • 2022-06-22
    • 2016-05-15
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 2019-07-15
    • 2016-06-22
    相关资源
    最近更新 更多