初心者向け: 私は Visual Studio と SpecFlow 全般に不慣れです。
SpecFlow の入門ドキュメントに従うと、開始するプロジェクトのタイプに応じて 2 つの異なる結果が得られます。
単体テスト プロジェクト: このタイプのプロジェクトでは、テストはランナーによってまったく認識されません。「SpecRun 評価」テストのみが実行されます。
MSTest テスト プロジェクト (.NET Core): このタイプのプロジェクトでは、テストは常に成功していますが、テスト出力でエラーが発生します:「値を null にすることはできません。パラメーター名: メッセージ」であり、これは「ジェネレーター」が原因です。
これはすべて、典型的な 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