Ric*_*lay 4 gallio visual-studio-2010 mspec
我正在尝试使用Gallio在Visual Studio的测试系统中运行MSpec测试,但它似乎忽略了IDE中的MSpec插件.我做了什么:
这产生了以下错误
"没有运行任何测试,因为没有加载测试或禁用了选定的测试"
为了检查Gallio本身,我添加了对MbUnit的引用并创建了一个简单的MbUnit测试.我还运行了Gallio的其他工具来检查插件是否被拾取.我甚至重新启动了VS.
结果
运行测试使用Gallio.Echo或Gallio.Icarus成功执行都MbUnit的和MSpec测试,所以这个插件是被拾起.从Visual Studio运行测试运行MbUnit测试但不运行MSpec测试,因此Gallio集成似乎正在运行(而不是MSpec插件).有什么想法吗?
在任何人提到它之前:是的,我宁愿使用ReSharper,但目前我的情况不是许可证.
更新:现在是将MSpec集成到VS2012测试系统的项目.它可以在Visual Studio库中找到,源代码在GitHub上.
在开始使用两个项目的源调试问题之后,似乎有两个潜在的问题导致MSpec和Gallio的VS runner之间的不兼容.但是,这两个问题都源于VS运行程序使用Cecil从程序集加载类型信息这一事实(可能是为了避免将测试程序集加载到主VS AppDomain中).
当我发现更多时,我会更新这个答案(希望导致一个或多个补丁来解决问题).
问题1:忽略嵌套类型
我一直在使用嵌套类型进行测试(SubjectSpec+when_something),Gallio的VS跑步者使用基于Cecil的反射忽略了这些类型,以避免将测试程序集加载到app域中.
这最终是一个相对简单的修复,我已经作为Gallio开发人员的补丁提交了.如果/当我确认哪个版本将成为其中的一部分,我将更新此答案.
问题2:MSpec导致"调用测试驱动程序时发生异常"
如果删除容器类型以避免问题1,则MSpec会抛出此错误.原因是MSpec正在尝试创建测试对象的实例,但是Gallio只提供了一个实际上无法创建的包装器 Type对象.
| 归档时间: |
|
| 查看次数: |
1196 次 |
| 最近记录: |