为什么 Visual Studio 2015 console runner 无法识别 MSpecs?
Why does Visual Studio 2015 console runner not recognize MSpecs?
我写了一些 MSpecs,但是 Visual Studio (2015) test 运行ner 无法识别它们。我已经使用 NuGet-PM 添加了 Machine.Specifications.Runner.Console
和所有必需的 Machine.Specification
包。但是当我选择 Test->Run Test
时,甚至没有列出包含 mspec 的文件。
Beyond 是我到目前为止编写的 mspecs 的一个示例,它位于自己的 project/solution 中,其中包含一些其他(常规单元)测试,顺便说一句 运行 很好。
[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) 作为参数,您现在必须插入包含 mspec 的项目的 .dll 的相对路径。 (再次以我的案例为例:
..\..\..\PluginTests\bin\x86\Debug\PluginTests.dll
控制台运行器适用于来自命令行的 运行 规范。您需要安装 Visual Studio MSTest 运行程序。
以防其他人也为此苦苦挣扎,使用 https://visualstudiogallery.msdn.microsoft.com/4abcb54b-53b5-4c44-877f-0397556c5c44 Visual Studio 能够识别 mspecs。
但是结果不显示。因此,如果您t/won买不起 ReSharper,我强烈推荐普通控制台运行器
接受的答案现在已经有几年了,要用一些 Visual Studio 2019 / Resharper 2019.3.4+ 信息更新它,以上对我来说并不成功,而是使用 Resharper 的内置扩展管理器。
在 VS 中,转到:
扩展 -> ReSharper -> 扩展管理器
和search/install"Machine.Specifications for ReSharper"
我写了一些 MSpecs,但是 Visual Studio (2015) test 运行ner 无法识别它们。我已经使用 NuGet-PM 添加了 Machine.Specifications.Runner.Console
和所有必需的 Machine.Specification
包。但是当我选择 Test->Run Test
时,甚至没有列出包含 mspec 的文件。
Beyond 是我到目前为止编写的 mspecs 的一个示例,它位于自己的 project/solution 中,其中包含一些其他(常规单元)测试,顺便说一句 运行 很好。
[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) 作为参数,您现在必须插入包含 mspec 的项目的 .dll 的相对路径。 (再次以我的案例为例:
..\..\..\PluginTests\bin\x86\Debug\PluginTests.dll
控制台运行器适用于来自命令行的 运行 规范。您需要安装 Visual Studio MSTest 运行程序。
以防其他人也为此苦苦挣扎,使用 https://visualstudiogallery.msdn.microsoft.com/4abcb54b-53b5-4c44-877f-0397556c5c44 Visual Studio 能够识别 mspecs。 但是结果不显示。因此,如果您t/won买不起 ReSharper,我强烈推荐普通控制台运行器
接受的答案现在已经有几年了,要用一些 Visual Studio 2019 / Resharper 2019.3.4+ 信息更新它,以上对我来说并不成功,而是使用 Resharper 的内置扩展管理器。
在 VS 中,转到:
扩展 -> ReSharper -> 扩展管理器
和search/install"Machine.Specifications for ReSharper"