web-dev-qa-db-ja.com

Xunit単体テストは実行されません

私はこの問題に完全にこだわっています。したがって、私のチームはサービステストプロジェクトに単体テストプロジェクトを持っています。テストはテストエクスプローラーペインで検出されますが、テストを実行しようとすると、次のエラーが表示されます。

'同じuri' executor:// xunit/VsTestRunner2 'の複数のテストアダプタが見つかりました。アダプター 'Xunit.Runner.VisualStudio.TestAdapter.VsTestRunner'を無視します。この警告を回避するには、競合するアダプターをアンインストールしてください '

'[xUnit.net 00:00:00.0251250]スキップ:(依存アセンブリ' Microsoft.Extensions.DependencyModel、Version = 1.1.0 'が見つかりませんでした)'

'C:\で利用できるテストはありません。テストディスカバーとエグゼキューターが登録され、プラットフォームとフレームワークのバージョン設定が適切であることを確認して、再試行してください。

コンテキスト情報:

  • Xunit 2.2.0
  • Visual Studio 15.5.2
  • Windows 10 1709ビルド:16299.125

私のテストプロジェクトproject.json:

{
   "version": "1.0.0-*",
   "testRunner": "xunit",
    "dependencies": {
       "dotnet-test-xunit": "2.2.0-preview2-build1029",
       "Microsoft.AspNetCore.Mvc.ViewFeatures": "1.1.3",
       "Microsoft.DiaSymReader": "1.0.8",
       "Microsoft.DiaSymReader.Native": "1.4.1",
       "Microsoft.Extensions.Logging.Abstractions": "1.1.2",
       "Microsoft.Extensions.Testing.Abstractions": "1.0.0-preview2-003121",
       "Newtonsoft.Json": "9.0.1",
       "WebServices": "1.0.0-*",
       "xunit": "2.2.0",
       "xunit.abstractions": "2.0.1",
       "xunit.assert": "2.2.0",
       "xunit.core": "2.2.0",
       "xunit.extensibility.core": "2.2.0",
       "xunit.extensibility.execution": "2.2.0",
       "xunit.runner.utility": "2.2.0"
   },
   "frameworks": {
    "net461": {
        "dependencies": {
            "Microsoft.NETCore.Platforms": "1.1.0"
        }
    }
}

奇妙なことは、それが私のチームメンバーのために働くということです。しかし、私ではありません。環境の違いは次のとおりです。WindowsとVisual Studioからの最新の更新ですが、更新は1つまたは2つ遅れています。

誰かが回避策を知っていますか?

19
CMR

同じ問題が発生したため、Visual Studio 2017を15.5.2から15.5.4に更新し、テストプロジェクトの参照を次の場所から更新することで修正しました。

<ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0-preview-20170628-02" />
    <PackageReference Include="xunit" Version="2.2.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
</ItemGroup>

に:

<ItemGroup>
    <PackageReference Include="xunit" Version="2.3.1" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
</ItemGroup>

Visual Studioを再起動します(明らかに、VSがキャッシュされ、更新後も以前のバージョンが使用されます)。

3つのうちの1つまたはそれらの組み合わせがそれを修正したかどうかはわかりません。

17
Xavier Poinas

「xunit.runner.visualstudio」パッケージをインストールまたは更新すると、うまくいきました。それまでは、フレームワーク462で動作していませんでした。

14
Pravin

私はあなたと同じような問題を抱えていました。could not find dependent Assembly;実際、そのアセンブリはそこにあり、xUnit VSランナーが利用できました。しかし、実際の問題は何だったのか、Visual Studioでデフォルトで32bitテストランナーを使用するように設定しました。見つけられなかった「依存アセンブリ」は、使用されているxUnitテストランナーとは異なるプロセッサアーキテクチャでした。

here のように修正するには、Visual StudioメニューからTest -> Test Settings -> Default Processor Architectureに移動し、X64アセンブリを使用している場合は64bitに設定するか、X8632bitアセンブリを使用している場合。 xUnit VSランナーが提供するエラーは、この問題をデバッグしようとする非常に誤解を招くものです。

新しいマシンにVisual Studioをインストールするときに見たこの問題。テストはVisual Studioのデスクトップマシンで実行されますが、ラップトップでは実行されません。

2
Michael Yanni

同じ問題が発生しましたが、Visual Studio 2017 15.5.4が既にインストールされています。それを機能させるために、すべてのxunit関連の参照を更新しましたが、.csproj関連の参照は次のようになりました。

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

何が機能していなかったのかは確かではありませんが、私のアドバイスは、これらの参照がcsproj内にあり、これらの最小バージョンを持っていることを確認することです。

2
Alexei