首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Gallio在的测试系统中运行MSpec?

如何使用Gallio在的测试系统中运行MSpec?
EN

Stack Overflow用户
提问于 2012-06-07 00:51:44
回答 1查看 1.3K关注 0票数 4

我试图使用Gallio在Visual的测试系统中运行MSpec测试,但它似乎忽略了来自MSpec的MSpec插件。我所做的:

  1. 安装Gallio
  2. 将MSpec NuGet包添加到我的测试项目中
  3. 将Gallio NuGet包添加到我的测试项目中
  4. 将MSpec Gallio集成所需的三个文件复制到Gallio安装目录中的"MSpec“文件夹
  5. 写了一个MSpec测试
  6. 在IDE中运行“解决方案中的所有测试”

这会产生以下错误

“没有运行测试,因为没有加载测试或禁用了选定的测试”

为了检查Gallio本身,我添加了一个对MbUnit的引用,并创建了一个简单的MbUnit测试。我还运行了Gallio的其他工具来检查插件是否被选中。我甚至为了好的措施重新开始了VS。

结果

使用Gallio.EchoGallio.Icarus运行测试将成功地执行MbUnit和MSpec测试,因此将获取插件。从Visual运行的测试运行的是MbUnit测试,而不是MSpec测试,所以Gallio集成看起来是可行的(只是MSpec插件不行)。有什么想法吗?

在任何人提到它之前:是的,我宁愿使用ReSharper,但就目前的情况而言,许可证不是一种选择。

EN

回答 1

Stack Overflow用户

发布于 2012-06-10 06:57:56

更新:现在是一个将MSpec集成到is 2012测试系统中的项目。它可以在视觉工作室画廊源在GitHub上上使用。

在开始对两个项目的源代码进行调试之后,似乎存在两个根本问题,导致了MSpec和Gallio‘and之间的不兼容性。但是,这两个问题都源于这样一个事实,即VS运行程序使用Cecil从程序集加载类型信息(可能是为了避免将测试程序集加载到主VS AppDomain中)。

我将更新这个答案,因为我发现了更多(希望导致一个或多个补丁,以解决问题)。

问题1:嵌套类型被忽略

我一直在为我的测试使用嵌套类型(SubjectSpec+when_something),Gallio的VS runner所使用的基于Cecil的反射忽略了这些类型,以避免将测试程序集加载到应用程序域中。

这是一个相对简单的补丁,我已经作为补丁提交给Gallio开发人员。我将更新这个答案,如果/当我得到确认哪个版本将是其中的一部分。

问题2: MSpec导致“调用测试驱动程序时发生异常”

如果删除容器类型以避免问题1,MSpec将抛出此错误。原因是MSpec正在尝试创建测试对象的实例,但是Gallio只是为它提供了一个无法实际创建的包装器Type对象。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10924312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档