我有一个包含两个项目的解决方案。我的解决方案中有3个类别的项目。第一类仅包括.feature文件。第二类仅包括绑定。第三个包括驱动程序,该驱动程序包括在绑定中使用的一组功能,用于与我正在测试的软件接口进行通信。
构建解决方案时,文件(.feature.cs)背后的某些代码已损坏。以下是构建解决方案后得到的屏幕截图:
在Visual Studio中生成错误
下面是一个损坏的.feature.cs文件的示例:
// ------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by SpecFlow (http://www.specflow.org/).
// SpecFlow Version:2.3.0.0
// SpecFlow Generator Version:2.3.0.0
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------
#region Designer generated code
#pragma warning disable
namespace AcceptanceTests.Controllers.Images
{
using TechTalk.SpecFlow;
[System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "2.3.0.0")]
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute()]
public partial class GetImagesFeature
{
private static TechTalk.SpecFlow.ITestRunner testRunner;
pr// ------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by SpecFlow (http://www.specflow.org/).
// SpecFlow Version:2.3.0.0
// SpecFlow Generator Version:2.3.0.0
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------
+ Designer generated code
注意这里有重复的代码块。似乎重新生成的代码已添加到旧代码中间的某个位置(我们看到的是“ pr // ---”)。
另一个示例是一个语法错误的后台代码文件,例如缺少括号或格式不正确。
解决方案中的所有测试项目都具有以下软件包:
单元测试提供者是mstest.v2。
到目前为止,我已经尝试在%TEMP%中清除SpecFlow文件。我确保所有项目都安装了相同版本的SpecFlow。我已经清理了解决方案并完成了重建。如果我在每个功能文件上单独运行自定义工具,我将永远不会遇到这个问题。
感谢您的帮助!
答案 0 :(得分:0)
此问题是由具有长名称,嵌套文件夹和长测试场景描述的项目引起的。我在一个功能文件中缩短了场景描述,这些功能文件的背后代码经常被破坏,然后问题消失了。