Java中的约定是不同的 - 每个“模块”(相当于IntelliJ中的Java)都有一个src和test目录。因此,jUnit可以按项目运行,而且不需要单独的测试项目。
答案 0 :(得分:8)
是的,您绝不希望生产程序集包含测试代码(因为它不是产品的一部分,而是围绕它的开发框架的一部分)。
答案 1 :(得分:4)
正如您可能已经提到的那样,通常的.NET约定是将测试代码放在一个单独的程序集中(一般来说,在Visual Studio中,每个Project都会生成一个不同的程序集)。
为什么会这样?
对于它的价值,我将测试保存在单独的项目中,但在同一解决方案中,必要时使用[InternalsVisibleTo]属性。我将每个测试命名为.Tests.dll,然后在NAnt脚本中使用通配符来查找要运行的所有测试。
答案 2 :(得分:2)
是的 - 测试课应该进入他们自己的测试项目。
答案 3 :(得分:0)
是的 - 您正在测试外部参考。你可以采用相同的解决方案,尽管一些纯粹主义者认为这只是一种捷径。
答案 4 :(得分:0)
注意:在Java中将测试保存在同一个包中的部分原因是因为您的测试具有驻留在同一个包中以测试包可见方法。 InternalsVisibleTo
在.Net中绕过了这个限制。