0

在使用 Moles 和 MsTest 时,我发现了一种可以解释(但令人沮丧)的行为。

想象一下以下情况:

  • “测试 DLL A”在 mscorlib 上使用 Moles
  • “测试 DLL B”在 mscorlib 上使用 Moles

为了缩短编译时间,在这两种情况下,我们都在编辑 .moles 文件,以便询问单个类的痣的生成。

当我们这样做时,我们的项目将编译得非常好。

但是当我们运行解决方案的测试时,MsTest 过程将是:

  • 复制“Out”文件夹中的所有 DLL
  • 在“Out”文件夹中运行测试

因此,复制到“Out”文件夹将尝试复制 mscorlib.Moles.dll 的两个版本(一个是类型 1,一个是类型 2),当然,第二个会覆盖第一个。

所以我对“Test DLL A”的测试将失败,因为我的鼹鼠组装不正确。

当然有两个简单的解决方法:

  • 在每个 .moles 文件中包含所有需要的类型(在所有项目中)
  • 要么不使用类型过滤

你也遇到过这个“问题”吗?还有其他解决方案吗?

非常感谢 !

Pierre-Emmanuel DotNetHub 用户组负责人

4

1 回答 1

1

我知道这是一个迟到的回复,但我们确实在我的商店遇到了同样的事情。

我们最终做的是为鼹鼠创建一个项目。然后让所有其他单元测试项目引用在我们的 MolesProject/Moles 文件夹中创建的 .dll。

我们能够利用这一点并缩短构建时间

于 2011-08-26T23:20:51.993 回答