unit-testing - 使用 Maven 项目将测试与 src 分开?

标签 unit-testing maven-2 maven

我刚刚开始处理一个 Java 项目(因为我通常使用 .net),而让我感到奇怪的第一件事是在 Maven 项目中有一个/src 和一个/test 目录,其中显然源代码和测试应该去。

在 .net 中,我更喜欢在单独的程序集/项目中进行测试,因此例如我会:

  • 我的项目
  • MyProject.Tests

这样我就不必用任何测试来膨胀我部署的代码,并且可以更轻松地真正隔离地测试我的代码,而且在很多情况下,我不需要为每个项目编写测试,我只需要解决方案范围单元/集成/验收测试,即 MySolution.UnitTests、MySolution.IntegrationTests。

但是在 Java 中它似乎只是捆绑在一起,我宁愿将它分开,但是我听说 Maven 是一个残酷的情妇,当你想以不同的方式做事时。

所以要重新统治这篇文章,我的主要问题是:

  • 有没有办法将测试从项目中分离出来
  • 根据以上信息,在项目中实际进行测试是否有任何优点? (除了当你检查它时,你总是在那里进行测试)

最佳答案

I dont have to bloat my deployed code with any tests

可部署的 Artifact (jar 文件、war 文件)将不包含测试类或数据。

Is there a way to separate out the tests from the project

您可以将其拆分为两个项目,其中一个“测试”项目仅包含测试,并取决于“真实”项目。

但是,尤其是使用 Maven,您可能希望遵循与其他所有人(或至少大多数人)相同的项目布局约定。这将使您的生活更轻松(更少的配置)。

同样,测试不会进入要部署的产品,所以当前的布局应该没有问题。

I would just have solution wide unit/integration/acceptance tests i.e MySolution.UnitTests, MySolution.IntegrationTests.

对于集成测试,这实际上是有道理的。在这种情况下,定义一个“测试”项目,该项目依赖于构成解决方案的所有其他项目(我仍然会将单元测试与他们测试的项目一起保留)。

关于unit-testing - 使用 Maven 项目将测试与 src 分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4517351/

相关文章:

eclipse - eclipse 中的 Maven pom.xml 错误

java - 为什么扩展 JerseyTest 与扩展 TestCase 会导致找不到测试

java - 如何让 Maven 3.2.5 理解使用 Java 7 的机器上的 Java 6 项目

java - Maven 在 pom.xml 中添加 mainClass 并具有正确的文件夹路径

eclipse - pom.xml 在包含 log4j 依赖项时显示多个错误

android - 通过Gradle执行本地单元测试时,为什么BuildConfig.DEBUG设置为false?

java - 适当的方法封装用于单元测试

java - 如何模拟实现类?

javascript - 如何使用 sinonjs 和 jquery 监 window 口调整大小事件?

java - 如何在启用 WTP 功能的情况下将 Maven 项目导入到 Eclipse Mylyn?