Tim*_*Dog 7 bdd visual-studio-2010 specflow
我已经将Specflow配置为定位MsTest框架(而不是NUnit),方法是在我的'specs'类库的app.config中指定它:
<configSections>
<section name="specFlow"
type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/>
</configSections>
<specFlow>
<unitTestProvider name="MsTest.2010" />
</specFlow>
Run Code Online (Sandbox Code Playgroud)
所以一旦它到位,我可以看到我的测试夹具是由Specflow自定义工具正确生成的,具有正确的TestClassAttribute()和方法等:
[System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "1.3.3.0")]
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute()]
...
Run Code Online (Sandbox Code Playgroud)
specs类构建,但现在我无法使用我的vista 64盒上的Visual Studio 2010中的Test - > Run - > All Tests in Solution运行测试.为什么VS不认为这些是有效的测试运行?
小智 8
根据Dror Helper和Alex Duggleby,您需要将以下行添加到.csproj文件中:
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
Run Code Online (Sandbox Code Playgroud)
在FileAlignment元素之后添加它,然后重新加载项目.它现在应该是一个MS Test项目,您可以在此项目的上下文中获得MS Test功能.Guids意味着:
我必须将项目重新创建为 aTest Project而不仅仅是 a Class Library— 因为我已经开始使用 NUnit 和 SpecFlow 进行开发,所以我创建了一个普通类库来保存装饰了 NUnit 属性的规范。我以为我可以简单地更改此现有项目的 app.config 以指向 mstest 框架并停止使用 NUnit,但 VS2010 从未识别出这些测试,尽管 Specflow 的自定义工具正确创建了存根。
所以...我添加了一个新的Test Project解决方案,将所有规范代码移至该新项目,然后重新编译,并且 viola、VS2010 识别了测试。我确信它正在 .csproj 文件的 XML 中寻找 GUID,或者告诉它连接测试框架的东西,但我没有深入研究。
希望这对某人有帮助。
| 归档时间: |
|
| 查看次数: |
4141 次 |
| 最近记录: |