Unit testing 库中的实用程序测试类应该进行测试还是主测试?
例如,我在Maven projectUnit testing 库中的实用程序测试类应该进行测试还是主测试?,unit-testing,maven,project-structure,Unit Testing,Maven,Project Structure,例如,我在Maven projectCommon中有一个文件ConnectionDummy。它仅用于电子邮件库、扫描仪和通用中的测试。注意Common本身也包括单元测试,但这些文件只是单元测试的助手。它应该进入Common的test还是main Maven设置,但我认为这可能是许多技术的共同点。这取决于您对在生产系统中使用测试(实用程序)代码的感觉有多强烈。只是坐在那里无所事事的代码对您的生产环境有害吗?假设您的测试工具有漂亮的注释,例如Spring在运行时拾取的注释 我遇到过不在乎的人。我个人
Common
中有一个文件ConnectionDummy
。它仅用于电子邮件库
、扫描仪
和通用
中的测试。注意Common
本身也包括单元测试,但这些文件只是单元测试的助手。它应该进入Common
的test
还是main
Maven设置,但我认为这可能是许多技术的共同点。这取决于您对在生产系统中使用测试(实用程序)代码的感觉有多强烈。只是坐在那里无所事事的代码对您的生产环境有害吗?假设您的测试工具有漂亮的注释,例如Spring在运行时拾取的注释 我遇到过不在乎的人。我个人对此感觉很强烈,不希望在我的生产环境中使用测试代码。如果这也是你的想法,我在我们的项目中看到了两种使用Maven的方法:
test
文件夹中。您将最终为您的公共项目构建测试jar(testjar
),并且您可能会遇到可传递依赖性问题,当有人依赖您的测试jar时,您的测试实用程序代码所需的公共项目的任何test
依赖性都将不存在。这是一个潜在的依赖性噩梦,我看到“包含项目”重新定义了很多依赖性,这些依赖性已经被“包含项目”很好地定义了,但是Maven没有发现它们在范围测试中是可传递的jar
,而不是testjar
打包。这样,测试实用程序不仅对依赖的项目,而且对原始的公共项目本身,都变成了“实用程序”,一模一样。这样,您的test
文件夹就真正成为项目的内部事务。也许这就是Maven的意思,否则为什么制作一个测试jar
不是一个标准选项呢我想它应该转到
main
。如果它不是您在测试中真正需要的唯一类,那么将它们提取到单独的模块中可能是有意义的。+1:我推荐选项2)。多年来,根据我的经验,这被证明是一个更好的选择。