我编写了一些 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