我想在进行TDD时改善往返时间。我想解决方案的总编译时间会更长,但这并不重要。
背景: 当我等待我的unittest运行时,在编译期间观察输出窗口时,我发现只花了一些时间来验证不需要构建依赖的项目。
声明: 拆分Testproject(今天大约20k行和依赖到其他九个项目) 在较小的测试项目中,每个testproject测试一小部分代码,会减少依赖关系,从而增加我正在使用的测试项目的编译时间。
视图?
答案 0 :(得分:4)
通常,我建议为每个程序集创建一个测试项目,因此它将对正在测试的程序集有一个依赖关系。如果要测试的程序集名为MyCompany.MyProduct.Common
,则测试项目将为MyCompany.MyProduct.Common.Test
。
此外,您可以使用持续集成让构建服务器在成功编译后执行所有适当的单元测试。
答案 1 :(得分:1)
叫我疯了(我已经习惯了!)。
我将测试放在与测试代码相同的程序集中。
命名空间N.M
中的代码在命名空间N.M.Tests
中进行测试。
通过这种方式,internal
类型可以很容易地进行单元测试,这适用于TDD。
如果没有单元测试导致的额外程序集依赖性的复杂性,则可以避免原始问题。
我听到的主要反对意见是您不希望将测试发送给客户。但是,除非带宽或存储受到特别限制,否则我没有看到运输测试有害的真正原因。
答案 2 :(得分:0)
我会沿着将其拆分为较小项目的路线,确保依赖关系也会下降。循环引用是最重要的事项。
编译时间可能会更长,但总是可以通过投资更快的硬盘驱动器,更快的CPU和更多的RAM来解决。通过拆分它你可以加快你的构建时间,如果你在CI服务器上运行它,因为你可以为每个项目创建并行运行的任务,所以不像同步运行,就像VS会正常运行,你可以构建每个它们是异步的,然后以异步方式运行。