大量项目和目录。
我是否让我的单元测试项目镜像这些目录,还是将它们全部放在根目录下?
必须使目录更改和类名更改两次才有点烦人。
答案 0 :(得分:19)
您肯定希望您的单元测试目录镜像被测代码的目录。手动设置是一种轻微的痛苦,但是这种疼痛的持续时间几乎与将所有测试都集中在一起的痛苦一样长,或者甚至更糟糕的是,将它们置于一些不同的结构中正在测试的代码。
显然你没有使用Java,或者你的测试代码已经拥有与被测代码相同的包结构,这个问题没有实际意义。 (至少我无法想象以任何其他方式去做。)
答案 1 :(得分:5)
我赞成在项目目录中进行单元测试,以使它们在物理上接近它们支持的代码。包含单元的目录测试位于特定test
目录中该组件/包目录中的一个组件/包,与src
目录处于同一级别。这就是我为C / C ++项目FWIW所做的。主要原因是能够同时编译组件及其单元测试,以使单元测试可见(我们的旧组件并非都具有单元测试)。
这样,对目录结构所做的每次更改都不会对测试目录结构产生任何影响,因为单元测试与生产代码一起移动。拥有两个并行目录结构对我来说是一个复制形式。