結果:ビルドされたテストはテストエクスプローラーに表示されません。どうして?
私はこれに従ってそれをします ビデオ
mSTestテストを生成するように構成するには、これをapp.configに追加する必要があります。
<specFlow>
<unitTestProvider name="MSTest"></unitTestProvider>
</specFlow>
同じ問題が発生しましたが、解決策は異なりました。
SpecFlow Githubの問題 に関するアドバイスに従って、以下がうまくいきました:
テストがテストエクスプローラーに表示されない場合は、NUnitテストアダプターをインストールする必要があります。
[ツール]-> [拡張機能と更新]-> [オンライン]-> [Visual Studioギャラリー]-> [ツール]-> [テスト]に移動し、[NUnitテストアダプター]を選択します。
Visual Studioは、読み込み時にデフォルトのプロセッサアーキテクチャを変更できます。問題を解決しようとして延々と探している間に、私はようやくそれが問題を引き起こしているSpecflowではないことがわかりました。
特別なアーキテクチャを必要とする参照がある場合、テストがテストエクスプローラーに表示されなくなります。必要に応じて、アーキテクチャをx86またはx64に変更します。
ビルドの問題を確認するもう1つの方法は、[出力]ウィンドウを開き、ビルド中にドロップダウンを[テスト]に変更することです。それはあなたのビルド中に起こっている事柄のあらゆる情報をハイライトします。
念のため誰かに言わせてもらいました。
私にとって、問題はsrprofileファイルのTestAssemblyPathでした。実際のdll名と一致しませんでした。
SpecRunnerでSpecFlowテストを実行していて、同じ問題が数回ありました。上記の提案をすべて試しましたが、問題の唯一の解決策は、SpecRun NuGetパッケージをアンインストールして再インストールすることでした。次のビルドでは、テストが期待どおりにテストエクスプローラーウィンドウに表示されます。
私の場合、テストが発見されなかった理由は、Resharperビルドを使用していたためです。
私が行ったとたんに、Resharper-> Options-> Tools-> Build-> General: "Use ReSharper Build"(unick)とすると、すべてのテストが突然発見されました。
私の場合、上記のアプローチはすべてうまくいきませんでした。私の解決策:理由はわかりませんが、「ツール=>拡張機能と更新」で「Specflow for Visual Studio 2015」を再インストールしてから、新しい機能ファイルを作成しました(古い機能はまだ機能していません)。 、そしてこの新しい機能ファイルは正しく動作します。
私にとっては、直接DLL参照を使用することから、SpecFlowバージョン3.1.7.4のNuGet参照を使用するように変更し、これで問題が解決しました。
「SpecFlow」、「SpecFlow.NUnit」、「SpecFlow.Tools.MsBuild.Generation」を参照する必要がありました。次に、Visual Studioの[Show All Files]ボタンをクリックして、関連付けられたFeatureファイル(これは以前は古いバージョンでは、機能ファイルの関連する子ファイルである必要があります)。
Visual Studioの「テストエクスプローラー」にテストを表示するには、コードビハインドファイルの「プロジェクトに含める」コンテキストメニュー項目も使用する必要があります。 。
注意:NuGetパッケージからSpecflowに必要なファイルを解凍し、プロジェクト内で直接参照して、プロジェクト内の他の直接参照(NuGet以外の参照)と一致するようにしましたが、これは機能していないようで、 NuGetリファレンスを使用します。テストエクスプローラーでテストを機能させるにはNugetリファレンスを使用する必要があると述べているgithubに未解決の問題を見つけました: https://github.com/techtalk/SpecFlow/issues/1617