【发布时间】:2019-08-24 17:07:58
【问题描述】:
对于初学者:我是 Visual Studio 和 SpecFlow 的新手。
根据 SpecFlow 的入门文档,我会根据我开始的项目类型获得 2 种不同的结果。
单元测试项目:在这种类型的项目中,运行者根本无法识别测试。仅“SpecRun 评估”测试运行。
MSTest 测试项目 (.NET Core):在这种类型的项目中,测试总是通过,但我在测试输出中确实收到错误: “值不能为空。参数名称:消息” 这是由“发电机”引起的
我在典型的 Windows 10 Pro 上执行所有这些操作。 我在 VS 2017 和 2019 上都试过了。 我已经尝试重新做整个过程,以防我错过了什么。 还尝试更新软件包。可能应该注意的一点是,单元测试项目不会生成 App.config 文件。
using System;
using TechTalk.SpecFlow;
namespace Tests.Steps
{
[Binding]
public class CalculatorSteps
{
[Given(@"I have entered (.*) into the calculator")]
public void GivenIHaveEnteredIntoTheCalculator(int p0)
{
Console.WriteLine(p0);
}
[Given(@"I have also entered (.*) into the calculator")]
public void GivenIHaveAlsoEnteredIntoTheCalculator(int p0)
{
Console.WriteLine(p0);
}
[When(@"I press add")]
public void WhenIPressAdd()
{
Console.WriteLine("add pressed");
}
[Then(@"the result should be (.*) on the screen")]
public void ThenTheResultShouldBeOnTheScreen(int p0)
{
Console.WriteLine(p0);
}
}
}
当我故意在测试中抛出异常时,我非常希望测试能够运行并获得某种反馈。
所有这一切都只是一个工作申请的任务,但我提供的是生成的默认功能文件,因为这两种情况都有这样的结果。我已经知道如何完成任务,在这里我被困在设置上几个小时......我真的希望这只是我的愚蠢/缺乏经验。
.csproj:https://codeshare.io/5zxk0W
【问题讨论】:
-
您提到了 .NET Core,所以我假设您使用的是 Specflow 版本 3。您在该版本中使用 json 文件进行配置,而不是 app.config。尝试根据this页面设置Specflow。
-
@MikaS 谢谢,但这似乎没有什么区别,除非我确实需要配置一个 json,因为它确实说这不是必需的。除了“SpecRun 评估”之外,仍然无法识别测试。我仍然需要尝试另一个项目,希望这会奏效