为什么当我在VS2008中进行单元测试时 - 使用运行还是调试 - VS是否坚持重建测试项目的所有依赖项,即我在单元测试中测试的项目?
有时它们没有改变 - 我刚刚修改了一些单元测试。或许我修改了其中一个组件 - 但它坚持重建所有组件。
我在单元测试项目中对我的其他项目有正常的项目引用。
感谢任何建议,因为这会降低我们尽可能有效地进行TDD的能力。
谢谢!
答案 0 :(得分:1)
好的,我至少找到了问题的原因和一些不太令人满意的解决方法!!
我首先添加了一个新的单元测试项目,并从我的主解决方案中添加了单个项目引用。我发现我的数据(业务实体)项目受到我所描述的问题的困扰,并且因为我的所有其他程序集在某种程度上依赖于我的数据项目,所以重新编译的那个会导致所有其他程序集。
为什么那个总是重新编译?这与Entity Framework有关。创建一个空项目,并向其添加一个空的EF模型 - 它将始终重新编译,即使您没有更改它。然后,这会导致导致任何依赖性重新编译,这可能是因为数据集的元数据已经发生变化。
我发现的解决方法是添加项目引用,而不是向数据程序集添加直接程序集引用。缺点是你无法做到,例如转到VS2008中的定义直接转到类型 - 但鉴于我们很少使用该特定程序集,这不是一个大问题。
这样做我已经缩短了构建时间,只需要从大约20秒到大约7秒进行单个单元测试 - 当你每天写几十个单元测试时会产生很大的不同!
如果有人对EF模型为什么这样做有任何想法,我真的很想听听......