Unit Test が実行できなくなった 原因と対処 【 VisualStudio 2019 / xUnit 】

2021/01/20

目次 [隠す]

xUnitを使っています。

Visual Studio 2019 で突然 UnitTest が実行できない状況に。

原因と対処を備忘録としてノートする。

環境

OS

  • Windows10 Pro (20H2)

IDEとFramework

  • Visual Studio 2019 (16.8.4)
  • .NET Core 3.1

UnitTestライブラリ

  • xunit (2.4.1)
  • xunit.runner.visualstudio (2.4.3)
  • Microsoft.NET.Test.Sdk (16.8.3)
xunit logo
出典:xunit - github.com

事象

Visual Studio 上で Unit Test を実行するものの、テストが Run しない。

ステータスバー以下メッセージが表示される。

「予期しないエラーが検出されました。詳細については、テスト出力ペインをご確認ください。」

errorメッセージ

出力 → 出力元(S): → テスト を開くと下記のログが出力されていた。

log
ログのレベルは、情報 (既定) に設定されています。
System.IO.FileLoadException: ファイルまたはアセンブリ 'Microsoft.VisualStudio.LiveShare, Version=1.16.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'、またはその依存関係の 1 つが読み込めませんでした。見つかったアセンブリのマニフェスト定義はアセンブリ参照に一致しません。 (HRESULT からの例外:0x80131040)
ファイル名 'Microsoft.VisualStudio.LiveShare, Version=1.16.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' です。'Microsoft.VisualStudio.LiveShare, Version=1.16.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ---> System.IO.FileLoadException: ファイルまたはアセンブリ 'Microsoft.VisualStudio.LiveShare, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'、またはその依存関係の 1 つが読み込めませんでした。見つかったアセンブリのマニフェスト定義はアセンブリ参照に一致しません。 (HRESULT からの例外:0x80131040)
ファイル名 'Microsoft.VisualStudio.LiveShare, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' です。'Microsoft.VisualStudio.LiveShare, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

原因

上記ログにあるとおり、「Microsoft.VisualStudio.LiveShare のマニフェスト定義が参照に一致しない」とのこと。

LiveShareは普段使用していないが、拡張機能 → 拡張機能の管理 → インストール済み で確認してみる。

拡張機能画面

自動的に更新するにチェックを入れており、拡張機能の Marketplace を見てみると、Last updated は 2021/1/14 7:45:21 となっている。
Live Share - Visual Studio Marketplace

この更新がうまくいかなかったと思われる。

普段使わない拡張ではあるが、再インストールを試みる。

対処

とりあえず、Live Share を Uninstall してみる。

ツール → ツールと機能を取得 から Visual Studio Installer を起動する。

個別のコンポーネントタブを見ると Live Share があるのでチェックを外し、「変更」ボタンをクリック。

LiveShare uninstall

もう一度同じ画面から今度はチェックを入れて「変更」ボタンで再インストールが完了する。

LiveShare install

そうするとテストは実行できるようになった。

test successfully

とりあえず解決。

VSCode・VisualStudio関連の記事

多階層の要素を一括削除したい【VSCode - Vim】 | neputa note

例えばこんなHTMLコードがあった場合、大外のdivを含む全コードを少ない手数で削除したい。Vimの場合matchit.vim をONにしていれば、Visualモードで開始タグを選択し、終了タグまで「

blog card

VSCodeでもStyleCopを使いたい【C#】 | neputa note

VisualStudioでC#を記述する際に「StyleCopAnalyzers(以降StyleCop)」というコード解析ツールを使用しています。チーム開発ではもちろん、個人開発においても整ったコーデ

blog card

editorconfig for VSCode でコーディングルールを 統一する【C#】 | neputa note

前回記事のStyleCopは、C#や.NETのコーディングスタイルを規定するため、警告を表示してくれるツールでした。今回のeditorconfigは、C#や.NETはもちろん、VSCodeのエディタ全

blog card

MoqでExpressionを引数に取るメソッド をセットアップする メモ | neputa note

引数に条件式(Expression)を取るメソッドをMoqにSetupしようとした際に少しハマったのでメモ。C# Moq

blog card