在Specflow中,框架

时间:2016-03-23 18:32:40

标签: .net visual-studio unit-testing mstest specflow

几天前我开始遇到新的.srprofile文件。上个月,我创建了3个自定义.srprofile文件,用于并行v。顺序,不同服务器等的各种组合。工作得很好。我为每个文件都有一个相应的Visual Studio .runsettings文件,这样编写测试的人(和我)就可以在Visual Studio中选择.runsettings(以及.srprofile)。选择保持在本地,因此在检入代码时我们不会相互搞乱切换配置文件。

设置工作得很好(使用Selenium进行了超过650次测试)直到2天前,当我需要创建另一个.srprofile时。当.runsettings文件指向我创建的任何新文件时,然后在重建解决方案以发现测试时,未找到任何测试。经过多次试验和错误,我可以将问题隔离到.srprofile文件的名称。我在二月制作的3'原创'.srprofiles都很好用(任何有效的xml配置)。如果我将其中一个工作文件复制并粘贴到新文件(当然使用新名称),将其导入Visual Studio,将活动.runsettings文件更改为指向此新.srpfofile文件,然后重建,没有发现任何测试。当我指向3个可接受的文件名之一时,将发现所有测试并在文本资源管理器中列出。

总结:。根据文件的名称是否为1,设置具有完全相同内容的文件(彼此复制; ExamDiff指示完全相同的内容)将起作用或不起作用(即,Visual Studio发现测试)几个星期前我创建的3个显然是'grandfathered'的名字。

某种缓存,对吧?好吧,我已经清除了nuget包,删除了着名的\%TMP%\VisualStudioTestExplorerExtensions\内容(在我的情况下为“\SpecRun.Runner.1.3.0-beta11\”),清除了bin \ x64 \ Debug和obj \ x64 \ Debug文件夹,得到了从源代码控制中获得的解决方案(应该只有密钥文件,没有Nuget东西或临时文件),重新启动了很多,然后重新安装了specflow VS插件,在机器上挥了挥鸡等等。跟踪“好”和“坏”.srprofile名字在某个我找不到的地方。 有人理解这个吗?

更新

根据Meirion Hughes的建议,我发现在.csproj文件中,指定了“无效”文件:

<None Include="BrowserStack.srprofile" />

而导入了“有效”.srprofile文件:

<None Include="RomulusDirectSequential.srprofile">
    <SubType>Designer</SubType>
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>

我没有想到这个,因为我从未接触过这些设置。它必须来自它们的导入方式,可能是使用上下文菜单拖动文件。

果然,在Visual Studio中,这些文件的“复制到输出”设置不同。 enter image description here

在确定之后,一切都很好。说得通。较新的.srprofile文件根本没有复制到visual studio和specrunner可以找到并识别它们的位置。

1 个答案:

答案 0 :(得分:1)

确保新文件也以相同的方式包含在项目中:

  • 卸载您的项目(通过右键单击)。
  • 编辑项目文件并查找有效文件。
  • 确保用于导入工作文件的xml与新文件的xml相同。

项目文件中可能会发生很多事情,因此可能存在差异。