1

为什么当我通过VS2008中的单元测试 - 使用运行或调试 - VS坚持重建测试项目的所有依赖关系,即我正在测试的项目在单元测试中?VS2008中的单元测试强制重建所有依赖关系

有时他们没有改变 - 我刚刚修改了一些单元测试。或者也许我修改了一个程序集 - 但它坚持要重建所有程序集。

我在单元测试项目中有正常的项目引用到我的其他项目。

任何建议都非常感谢,因为这会降低我们尽可能有效地执行TDD的能力。

谢谢!

+0

我必须说,这不是我的经验。如果我只是改变测试,VS不会重建整个解决方案... – 2009-11-12 07:48:41

+0

我知道。我昨天晚上从家用电脑上试了一下,但似乎也没有发生。我甚至创建了两个类库项目A和B.引用B.如果我构建了A,它会重建B,即使B没有改变。 – 2009-11-12 17:23:09

回答

1

好的,我发现至少是问题的原因和一个有点不满意的解决方法!

我开始时添加了一个新的单元测试项目,并在我的主要解决方案中添加了单个项目引用。我发现我的数据(业务实体)项目受到我所描述的问题的困扰,并且因为所有其他程序集都以某种方式依赖于我的数据项目,所以重新编译的事实会导致所有其他程序集。

为什么那个总是重新编译?这与Entity Framework有关。创建一个空项目,然后添加一个空的EF模型 - 即使没有改变,它也会一直重新编译。然后这会导致任何依赖重新编译的效果,大概是因为数据程序集的元数据已经改变。

我找到的解决方法不是添加项目引用,而是将直接程序集引用添加到数据程序集。缺点是你不能做转到VS2008中的定义直接转到类型 - 但鉴于我们很少使用该特定程序集执行该操作,所以它不是一个大问题。这样做我已经缩短了编译时间,只需要运行一个单元测试,从大约20秒到大约7秒 - 这在每天编写数十个单元测试时会产生巨大的差异!

如果任何人有任何想法,为什么EF车型做到这一点,我想听到真正的兴趣......

相关问题