VS2017
で古いソリューションを開こうとすると、古いユニットテストプロジェクトがあり、ビルド時に問題が発生します。
このテストプロジェクトをビルドすると、次のエラーが表示されます:
ファイルまたはアセンブリ 'file:/// C:\ Projects\MyProj\Test\DAL\UnitTestProj\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll'またはその依存関係の1つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
プロジェクトの参照を確認しましたが、Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
を参照しているようです。さらに、コードエラーはありません。依存関係の1つが見つからない場合、どのようにすればわかりますか?
VS2010で最初に開発されたプロジェクトで同様の問題があり(追加メッセージThe "BuildShadowTask" task failed unexpectedly
)、最後の数時間をビルドプロセスのさらに別のレガシーファセットについて学習することになりました。
プライベートアクセサファイル (.accessor
)を扱っている可能性があります。これらは VS2012で非推奨 ( 元のソース 404)です。これは、 VS2010チームからの発表 でこれらの機能に取り組んでいないという予兆でした。
また、誤ったバージョンのUnitTestFrameworkへの誤った参照を処理している可能性もありますが、NuGetの復元でこれを修正する必要があります。そうでない場合は、 このGitHubスレッド を参照して修正するか(refをパブリックフォルダーに手動で変更します)、または新しいMSTest.TestAdapterおよびMSTest.TestFrameworkパッケージに移動します( MSDNサポートを参照してくださいスレッド )。
.csproj
を編集し、アイテム参照を<Shadow Include="Test References\namespace.accessor" />
から<None Include="Test References\namespace.accessor" />
(Shadow
=> None
)に変更します。.accessor
フォルダからすべてのTest References
ファイルを削除するだけです。理想的には、個別の懸念事項に再設計するか、プロパティをinternal
に変更し、 InternalsVisibleToAttribute
。
何らかの理由でプライベートメソッドのテストを引き続きサポートする必要がある人のために、同じ投稿では論理的な質問"What is available for me then?"
に対して次の提案を提供しています。
内部APIのテストを継続したい場合は、次の3つのオプションがあります。
- Microsoft.VisualStudio.TestTools.UnitTesting.PrivateObjectクラスを使用して、コード内の内部およびプライベートAPIへのアクセスを支援します。これは、Microsoft.VisualStudio.QualityTools.UnitTestFramework.dllアセンブリにあります。
- コードを反映して内部またはプライベートAPIにアクセスできるリフレクションフレームワークを作成します。
- アクセスしようとしているコードが内部の場合、テストコードが内部APIにアクセスできるように、InternalsVisibleToAttributeを使用してAPIにアクセスできる場合があります。
ただし、言語チームによって追加された新機能のコード生成に代わるものはありません。 TestMethodスタブを作成してから、内部コードを削除できます。スタブ自体を保持するだけです。
これをつなぎ合わせてくれた参考資料/ソース:
プロジェクト参照フォルダーを右クリックします。参照を追加>アセンブリ>拡張。 Microsoft.VisualStudio.QualityTools.UnitTestFramework 10.1を確認し、古いバージョンのチェックを外します。
これはVisual Studio Enterprise 2015に関連し、新しいロードテストの追加に失敗しました:「アセンブリ 'Microsoft.VisualStudio.QualityTools.LoadTest、バージョン= 14.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3aが見つかりません」と表示されます。
パブリックアセンブリにインストールされたアセンブリはバージョン10.0.0.0として表示されますが、GACにはありませんが、
GACには10.1.0.0しかありませんでした。 GACを10.0.0.0で更新し、VS 2015を再起動すると、これに類似した問題が解決するはずです。
より適切な推論のための詳細、システムアセンブリパスおよびプロジェクトパスDLLパス......\Program Files(x86)\ Microsoft Visual Studio 14.0\Common7\IDE\PublicAssemblies\Microsoft。 VisualStudio.QualityTools.UnitTestFramework.dll
.CSProj参照バージョン