为什么Visual Studio 2015控制台运行器无法识别MSpec?

时间:2015-08-26 15:54:26

标签: console visual-studio-2015 mspec runner

我已经编写了一些MSpec,但Visual Studio(2015)测试运行器无法识别它们。我已使用NuGet-PM添加了Machine.Specifications.Runner.Console和所有必需的Machine.Specification - 包。但是当我选择Test->Run Test时,甚至没有列出包含mspec的文件。 Beyond是我到目前为止写的mspecs的一个例子,它位于一个自己的项目/解决方案中,其中包含一些其他(常规单元)测试,这些测试都运行良好。

[Subject(typeOf(ControllerForm)]
public class When_file_with_multiple_procedures_is_opened:ControllerFormSpecs
{
   static ControllerForm subject;
   ...
   Establish context =()=>
   {
       subject = new ControllerForm(...);
       path="someRandomPath";
   };

   Because of =()=>
   {
       subject.OpenFile(path);
   }

   It should_have_event =()=> subject.eventExist.ShouldBeTrue();

   It should_not_have_data  =()=> subject.currentNode.ShouldBeNull();

   Cleanup after =()=>
   {
       subject = null;
   };
 }

我错过了什么?

注意:此处不能使用ReSharper。我知道很多人喜欢它,甚至更推荐它,但我的公司已经拒绝了我的要求。

编辑:使用' Machine.Specifications.Console.Runner'你必须牢记以下几点:

1)将控制台的工作目录更改为存储所有mespc.exe文件的工作目录(在我的情况下:c:\projects\...\Source\packages\Machine.Specifications.Runner.Console.versionnumber\tools

2)根据您的调试选项选择正确的.exe文件(在我的例子中:mspec-x86.exe

3)作为参数,您现在必须插入包含mspecs的项目的.dll的相对路径。 (再次作为我的案例: ..\..\..\PluginTests\bin\x86\Debug\PluginTests.dll

1 个答案:

答案 0 :(得分:0)

现在接受的答案已有几年历史了,要使用Visual Studio 2019 / Resharper 2019.3.4+信息进行更新,以上内容对我来说并不成功,相反,使用Resharper的内置扩展管理器是可行的。 / p>

在VS中,转到:

扩展-> ReSharper->扩展管理器

并搜索/安装“ Machine.Spec for ReSharper”