在VS2008中运行单元测试与在命令行上使用mstest进行测试

时间:2009-07-24 12:24:11

标签: visual-studio mstest postsharp data-driven-tests

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

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

在Reflector中检查构建的程序集显示每个测试方法确实归因于正确的DataSource属性。在命令行上使用mstest运行测试的行为符合预期 - 每个测试都针对指定的数据源运行。

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

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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

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