web-dev-qa-db-ja.com

executor 'executor:// xunit / VsTestRunner2 / uap'の呼び出し中に例外が発生しました:ファイルまたはアセンブリ 'System.IO.FileSystemをロードできませんでした

VSTSビルドで単体テストを実行すると問題が発生します。 Visual Studioですべてのテストをローカルで起動すると、すべてが正常に動作します。エラーはまったくありません。完璧です。しかし、VSTSビルドのテストタスクを介してテストを起動すると、次のエラーが発生します。

Executor 'executor:// xunit/VsTestRunner2/uap'の呼び出し中に例外が発生しました:ファイルまたはアセンブリを読み込めませんでした 'System.IO.FileSystem、Version = 4.0.1. 、Culture = neutral、PublicKeyToken = *********** 'またはその依存関係の1つ。システムは、指定されたファイルを見つけることができません。

私のテストプロジェクトは次のように設定されています。

  • 「targetFramework」が「net462」に設定されたバージョン2.4.0の「xunit.runner.visualstudio」(packages.config内で設定)

  • .NET Framework 4.6.2

私が持っているビルドサーバーでは:

  • Visual Studio 2017、v15.7.5

  • Visual Studio 2015、v14.

手がかりが足りなくなって…きっと何かが足りない…助けてくれてありがとう

PS:

  • すべてのテストはVSTSビルドで正しく合格しました
  • ビルドタスクの設定で、[テストプラットフォームバージョン]を[Visual Studio 2015]に設定すると、機能します。しかし、「Visual Studio 2017」または「Latest」を選択すると、同じエラーが発生します...

[〜#〜]編集[〜#〜]

Nugetパッケージ "FluentAssertions" v5.4.1および "System.ValueTuple" v4.5.があります。そのうちの1つと両方をダウングレードしようとしました。失敗した。しかし、私は「FluentAssertions」が「System.ValueTuple」に依存していることを見ました

編集2

@ PatrickLu-MSFTが言ったように、vsテストタスクのバージョンを1に渡すと問題が解決しました。しかし、よく見てみると、利用可能なテストプラットフォームのバージョンは2015年と2013年です。

Test platform version for VS test task version 1

VSテストタスクバージョン2を選択する場合、次の選択肢があります。

Test platform version for VS test task version 2

テストバージョン2と比較したいのですが(将来の更新の場合、行き詰まりたくない...)。 "Latest"または "Visual Studio 2017"に設定されたテストプラットフォームバージョンを使用していると、機能しません。 "Visual Studio 2015"を選択すると、機能します...つまり、私が指摘することは次のとおりです。

  • Vsテストタスクのバージョンをバージョン1に設定すると、機能します(たぶん、最新のテストプラットフォームバージョンが "Visual Studio 2015" ...?)
  • Vsテストタスクのバージョンをバージョン2に設定withテストプラットフォームのバージョンを "Visual Studio 2015"に設定して機能させる

そう:

  • バージョン1に設定されたVSテストタスクのバージョンはバージョン2に設定されたVSテストタスクのバージョンと同じように機能し、「テストプラットフォームバージョン」は「-」に設定されます。 Visual Studio 2015 "。
  • バージョン2に設定されたVSテストタスクのバージョンと "最新に設定された"テストプラットフォームバージョン "で動作させるにはどうすればよいですか?

編集

ビルドエージェントのサーバーにリモートで接続し、VS2017からテストを実行した後、ホストサーバーのVisual Studio 2017の出力とローカルのVisual Studio 2017の出力を比較します。

  • ローカルVisual Studio 2017:

My local Visual Studio 2017 output

  • リモートVisual Studio 2017:

Remote Visual Studio 2017 output

ホスト上の「xUnit.net VSTest Adapter v2.4.0(32-bit Universal Windows)」に問題はありますか?

12
Régis NIOX

私はこれと同じ問題に遭遇し、「カスタムテストアダプターへのパス」を「Source\packages\xunit.runner.visualstudio.2.4.0\build_common」に設定することで、特に正しいテストアダプターを指すように変更することで解決しました。 (パスは、packagesフォルダーがリポジトリーのどこにあるかを考慮して変更する必要があります。)

これは明らかにデフォルトでVSTSが役立つようにして、テストアダプターの作業ディレクトリ構造全体をスキャンし、それらのallをロードするために発生しますが、xUnit Visual StudioテストアダプターNugetパッケージは.Net CoreのテストアダプターをインストールしますそしてUWPも同様に、VSTSはそれらを喜んでロードし、爆破します。

12
Eric Lee