Scala:测试类的目录布局

Scala:测试类的目录布局,scala,unit-testing,Scala,Unit Testing,基于Maven和sbt,Scala测试类的布局约定在src/test/Scala下。在该目录下,测试类的正确约定是什么 具体而言: 测试的dir是否应该与它们所测试的类的dirs结构相匹配 单元测试和集成测试应该放在单独的目录中吗?如果是的话,这与#1有什么关系 测试助手和测试基类去哪里了?不是测试但支持测试的代码 这些东西的包装怎么样 我认为你应该考虑什么对你有好处,什么对你的项目有帮助,而不是最佳实践 我的5美分: 匹配结构(包)的一个好处是,您可以将内部stuff包设置为私有,但仍然可以测

基于Maven和sbt,Scala测试类的布局约定在src/test/Scala下。在该目录下,测试类的正确约定是什么

具体而言:

  • 测试的dir是否应该与它们所测试的类的dirs结构相匹配
  • 单元测试和集成测试应该放在单独的目录中吗?如果是的话,这与#1有什么关系
  • 测试助手和测试基类去哪里了?不是测试但支持测试的代码
  • 这些东西的包装怎么样

  • 我认为你应该考虑什么对你有好处,什么对你的项目有帮助,而不是最佳实践

    我的5美分:

  • 匹配结构(包)的一个好处是,您可以将内部stuff包设置为私有,但仍然可以测试它们。Scala不要求您将目录结构与包结构匹配,但这样做的一个好处是很容易找到代码库中的方法
  • 我认为这取决于您的项目,集成测试是否运行缓慢/映射到单独的测试运行,或者可能编译缓慢,并且您在运行单元测试时并不总是希望编译它们,那么甚至可以为它们设置单独的源根,但是您也可以使用您的测试库的标记/类别支持,并将它们混合使用,或者为测试用例使用命名标准(例如NnnnnSpec与nnnnnnnintegrationspec)
  • 与测试类一起,但命名不同,可能在一个单独的包中,该包很容易被识别为测试支持/实用程序
  • 见#1和#3