web-dev-qa-db-ja.com

VS 2017が.NET Coreでテストを検出しない

vS2017を.NET Coreテストプロジェクトで動作させるのを手伝ってくれる人はいますか?

VS 2017テンプレートから.NET CoreのMSTestとxUnitユニットテストプロジェクトの両方を作成してみました。どちらもテストエクスプローラーでは動作しません(検出されません)が、プロジェクトフォルダーから_dotnet test_を実行すると正常に動作します。

再現する手順:

  1. VS 2017で新しいプロジェクトを作成する
  2. Unit Test Project (.NET Core)またはxUnit Test Project (.NET Core)テンプレートを選択します
  3. 任意の単体テストを実装する
  4. ソリューションを構築する
  5. テキストエクスプローラーに移動し、_Run All_を試してください

この時点で、出力ウィンドウに0個のテストが検出されたことが示されます。

_.csproj_ファイル:

_<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
    <PackageReference Include="xunit" Version="2.2.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
  </ItemGroup>

</Project>
_

.NET Framework(.NET Coreではなく、完全)を対象とするテンプレートからMSTest単体テストプロジェクトを作成しようとした場合、機能しました。

何か案は?

19
valorl

私は同じ行動を経験したと思います。 VSがテストを検出できるように、ソリューションを構築してください。それ以外の場合は、csprojファイルを共有して、正しいパッケージを参照していることを確認してください。私は:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
    <PackageReference Include="xunit" Version="2.2.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
  </ItemGroup>

</Project>

PDATE:少し遊んでみましたが、VSは<OutputType>Exe</OutputType>なしではテストを見つけることができません

PDATE 2: VSが場合によっては追加されるので、csprojにも以下を追加してみてください。

<ItemGroup>
  <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
6
Andrii Litvinov

この問題は、VS 2017で.NET CoreのMSTestユニットテストが検出されないことで発生しました。

テスト出力は、ゼロのテストを発見したことのみを報告しました。

実行中dotnet test MyProject.csproj -tコマンドプロンプトで、プロジェクトのRuntimeFrameworkVersionに一致する正しい.NET Coreランタイムがインストールされていないことを通知しました。

最新のVS 2017更新プログラムと.NET Coreランタイムをインストールすると、問題が解決しました。

3
DGreen

同じ問題がありました。 nugetから「Microsoft.NET.Test.Sdk」パッケージをインストールすることで解決しました。

1
pgoostree

私もこの問題を抱えており、私のプロジェクトとテストプロジェクトの.csprojファイルのターゲットフレームワークのバージョンが同じであることを確認することで修正されました。

<TargetFramework>netcoreapp1.0</TargetFramework>
0
coolhand

project.jsonからcsprojへの移行後も同じ問題が発生しました。 net451ターゲットフレームワークを削除し、netcoreapp1.1のみを残して解決しました。今では完璧に機能し、毎回発見しています。

もちろん、多くのフレームワークターゲットが必要な場合は、実行しないでください。CLIを使用してテストしてください...

0
Flaksirus

また、複数のテストプロジェクトと同じ出力ディレクトリがある場合、*。csprojファイルにPackageReferenceの混合バージョンがないことも確認してください。また、テストプロジェクトのパッケージを更新する MSTest.TestAdapterおよびMSTest.TestFramework

0
CodingYourLife

プロセッサアーキテクチャのプロジェクト設定の不整合が原因である可能性があります。テストプロジェクトのターゲットは、テストの既定のプロセッサアーキテクチャと一致する必要があります。

チェック https://stackoverflow.com/a/47454276/27003

0
ByteArtisan