gpt4 book ai didi

java - 如果测试不在测试目录中而是在主目录中并且类名没有像 .*Test.* 这样的关键字,如何在 Maven 中运行 JUnit 测试

转载 作者:行者123 更新时间:2023-12-01 23:28:38 25 4
gpt4 key购买 nike

这是背景。

我正在开发一个使用 ant build 的项目。当我们用来创建一个新的类时,我们通常在 ant 支持的同一个类中编写 junit 测试。类名没有“Test”命名约定。有超过 800 个 Junit 测试。

现在我们需要转向 Maven 构建结构。问题是maven只运行junit,其中类名具有命名约定“Test”。

如何运行 src/main/java/* 中的 junit 测试?

另外,有没有办法可以提取所有具有“@Test”注释的方法?

如果您需要任何进一步的信息,请告诉我。

最佳答案

仅仅因为您曾经对 Ant 这样做过,并不意味着现在继续使用它是正确的。现在您已经迁移到 Maven,您必须遵守它的做事方式并遵循它的约定。其中之一是将生产代码与测试分开。混合是没有意义的,因为实际上您在代码中散布着无用的(对于代码的客户端)方法。虽然您可以继续这样做并找到解决方法,但这并不是高标准的选择路线。

下一步您真正需要做的是安排一些重构时间并执行以下任务:

  • 创建src/test/java(分别创建src/test/resources)。

  • 为每个包含 @Test 注解方法的类创建一个 *Test 类,并将它们放在 src/test/java 下.

  • 将这些方法移至相应的新类。

  • 将仅由测试使用的所有资源移至 src/test/resources 目录。

关于java - 如果测试不在测试目录中而是在主目录中并且类名没有像 .*Test.* 这样的关键字,如何在 Maven 中运行 JUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19641124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com