2

我最近在 VS2008 中运行单元测试与在命令行上使用 mstest 运行相同的单元测试时遇到了一些不一致。

我的场景有点先进,所以我可能遇到了一些问题。我有许多针对同一个数据源运行的数据驱动单元测试。我也喜欢尝试使用 PostSharp。所以,我写了一个 PostSharp 方面——TestDataSource我将其应用于单元测试类型,而不是单元测试方法。构建类型时,此方面指示 PostSharp 将DataSource属性附加到类型中的每个单元测试方法。

检查 Reflector 中构建的程序集表明,每个测试方法确实具有正确的DataSource属性。在命令行上使用 mstest 运行测试的行为与预期一样 - 每个测试都针对指定的数据源运行。

但是,在 VS2008 中运行完全相同的单元测试无法找到数据源。就好像 VS2008 忽略了构建的程序集并查看源代码,这当然看起来不是数据驱动的测试,因为该DataSource属性是在构建过程中注入的。

部署的项目没有问题。手动附加DataSource到测试使 VS2008 可以愉快地运行它们。

有任何想法吗?

4

1 回答 1

0

如果您在测试中设置断点并检查已加载模块的列表,您应该会看到正在调试的程序集的确切路径。它是预期的(在 bin\Debug 中)吗?如果你在调试器运行时使用 Reflector 打开这个文件,你看到里面有 PostSharp 的东西吗?

奇怪的是,PostSharp 单元测试的一部分是为 MSTest 编写的,它们从 Visual Studio 运行没有问题......

于 2009-07-24T15:18:39.267 回答