ReSharper无法识别我的Machine.Specification测试

3
我遇到了一个问题,ReSharper无法识别我编写的Machine.Specification“测试”。这些规范在mSpec的ConsoleRunner中运行。当我尝试在ReSharper中“运行单元测试”时,会收到一条消息:“文件中未找到测试”。这些规范没有显示测试标记。我在ReSharper /bin/文件夹中创建了一个文件夹,并将正确的.dll文件放置在其中。mSpec插件出现在ReSharper中。我可能错过了什么?另外,我正在使用xUnit.NET,不知道是否有影响。
3个回答

7

ReSharper运行程序不考虑嵌套的上下文类。与其嵌套上下文类,请进行以下操作:

namespace SomeNamespace
{
    public class Specs
    {
        public class when_something_happens
        {
            Because of = () => {};
            It should_do_something = () => {};
        }
    }
}

作者上下文不嵌套,即命名空间内的根类:

namespace SomeNamespace
{
    public class when_something_happens
    {
        Because of = () => {};
        It should_do_something = () => {};
    }
}

如果满足以下所有条件,ReSharper的绿色和黄色测试图标将会出现:

  • 类是公共的
  • 类不是抽象的
  • 类不是嵌套的
  • 具有 >= 1 个规范字段 (It) 或者具有 >= 1 个行为字段 (Behaves_like<>)

感谢您的答案和通过Twitter提供的帮助。 - y0mbo
+1 哎呀,还有其他方法吗?!?!所以,我偶然发现了ReSharper单元测试报告的样子,并且感到印象深刻,我也遇到了与作者相同的问题。问题是,我有超过200个类(在MSpec中有超过2500个“Specs”),它们继承了抽象逻辑/帮助程序等。是的,所有这些都可以重构。但是,我担心上下文被共享(需要更多的重构!)以及MSpec报告将如何排序。 - eduncan911
我编写了一个支持嵌套上下文的ReSharper运行程序版本 - 我们仍在考虑将其放入官方主分支。 http://github.com/agross/machine.specifications/tree/nestedtypes不过,在我看来,命名空间是结构化上下文的首选方法。 - Alexander Groß

0

在使用ReSharper和XUnit.net时,我也遇到了“文件中未找到测试”的问题。但是,我可以在测试资源管理器窗口中看到我的测试,并能够从那里运行它们。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接