使用Maven Project将测试与src分开?

Gro*_*fit 3 maven-2 unit-testing maven

我刚刚开始研究一个Java项目(因为我通常使用.net),并且首先让我觉得奇怪的是,在Maven项目中有一个/ src和一个/ test目录显然是源代码代码和测试应该去.

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

  • 我的项目
  • MyProject.Tests

这样我就不必用任何测试来扩展我部署的代码,这样可以更容易地在真正的隔离中测试我的代码,并且在很多情况下我没有为每个项目编写测试,我只需要解决方案宽单元/集成/验收测试,即MySolution.UnitTests,MySolution.IntegrationTests.

然而在Java中它似乎只是捆绑在一起,我宁愿把它分开,但是当我想对默认结构采取不同的做法时,我听说Maven是一个残酷的情妇.

所以为了重新回到这篇文章,我的主要问题是:

  • 有没有办法将测试与项目分开
  • 根据以上信息,有没有在项目中实际进行测试的专业人员?(除非你检查出来,你总是在那里进行测试)

Thi*_*ilo 6

我不必在任何测试中膨胀我部署的代码

可部署工件(jar文件,war文件)不包含测试类或数据.

有没有办法将测试与项目分开

您可以将其拆分为两个项目,其中"Test"项目仅包含测试,并取决于"真实"项目.

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

同样,测试不会使其成为要部署的产品,因此当前的布局应该不是问题.

我只需要解决方案广泛的单元/集成/验收测试,即MySolution.UnitTests,MySolution.IntegrationTests.

对于集成测试,这实际上是有意义的.在这种情况下,定义一个"测试"项目,该项目依赖于构成解决方案的所有其他项目(我仍然将单元测试与他们测试的项目保持一致).