例如,我ConnectionDummy
在 Maven 项目中有一个文件Common
。它仅用于和中Email-Lib
的测试。Note本身也包括单元测试,但这些文件只是单元测试的助手。它应该去还是?Scanner
Common
Common
Common
test
main
Maven 设置,但我认为这可能是许多技术的共同点。
例如,我ConnectionDummy
在 Maven 项目中有一个文件Common
。它仅用于和中Email-Lib
的测试。Note本身也包括单元测试,但这些文件只是单元测试的助手。它应该去还是?Scanner
Common
Common
Common
test
main
Maven 设置,但我认为这可能是许多技术的共同点。
这在一定程度上取决于您对在生产系统中使用测试(实用程序)代码的感觉有多强,在路上。只是坐在那里,什么都不做的代码对您的生产环境有害吗?想象一下,您的测试实用程序有漂亮的注释,例如 Spring 在运行时拾取?
我遇到过不关心的人。我个人对此感觉很强烈,并且不希望在我的生产环境中测试代码。如果这也是您的想法,那么我在我们的项目中看到了两种使用 Maven 的方法:
测试实用程序代码位于 Common 的test
文件夹中。您最终会test-jar
为您的 Common 项目构建测试 JAR ( ),并且您可能会遇到传递依赖问题,<scope>test</scope>
当有人依赖您的测试 JAR 时,您的测试实用程序代码所需的 Common 项目的任何依赖项都不存在. 这是一个潜在的依赖噩梦,我看到“包含项目”重新定义了很多依赖项,这些依赖项已经被“包含项目”很好地定义了,但由于在范围测试中具有传递性而没有被 Maven 拾取.
测试实用程序代码放在一个单独的测试项目中,例如 CommonTest 生成jar
,而不是test-jar
打包。这样,测试实用程序不仅对您的依赖项目,而且对原始 Common 项目本身都成为“实用程序”,同样如此。通过这样做,您的test
文件夹真正成为项目的内部事务。也许这就是 Maven 家伙的意思,否则为什么test-jar
不做一个标准选项呢?:)