2017-11-22 5 views
0

私の主なプロジェクトメソッドの1つをテストするためのテストメソッドを作成しました。私のテストプロジェクトでは、私のメインプロジェクトを参照しました。しかし、私は私のテストプロジェクトにそのクラスのいくつかを使用しておりますので、Visual Studioがいることを語っている:テストプロジェクトは、メインプロジェクトが参照されていても、メインプロジェクトから参照を追加するよう依頼します。

The type 'XYZ' is defined in an assembly that is not referenced. You must add a reference to assembly 'XYZ, version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

enter image description here

だから、私たちはすでにへの参照を追加したとき、なぜ私の質問は、あると思います私たちのメインプロジェクトでは、テストプロジェクトで参照されるすべてのライブラリを個別に追加する必要がありますか?

+0

私たちXYZ' 'のソースコードを表示してください。 – mjwills

+0

@mjwillsがスナップショットを追加しました。チェックしてください。 – Disasterkid

+0

@mjwillsこれはEntity Framework 6を​​使用したASP.NET MVC5プロジェクトです。 – Disasterkid

答えて

0

不幸です。あなたは再びエラーを取得したパッケージを削除した場合

enter image description here

https://www.nuget.org/packages/Microsoft.AspNet.Mvc/

は、あなたのユニットテストプロジェクトにNuGetパッケージ "Microsoft.AspNet.Mvc" を追加します。 )

1 ASP.Net Webアプリケーションを作成します:

このアクションは、私が3つの手順で再現できるような状況を修正することができますenter image description here

とそのpackages.configを検証含まれています

<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net46" />

2)ユニットテストプロジェクトの作成:

enter image description here

と、次のテストを追加:私はこのエラーを取得し、コンパイル時に

[TestMethod] 
public void TestMethod1() 
{ 
    var controller = new HomeController(); 
    var target = controller.Index(); 
} 

3):

The type 'ActionResult' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. UnitTestProject1 UnitTest1.cs

+0

ありがとうございます。しかし、私はそれがそこで終わるとは思わない。自分のメソッドをテストすると、テストプロジェクトはメインプロジェクトのデータベースへの接続文字列を見つけられないように見えます。 'Bookshelf.Controllers.Tests.BooksControllerTests.ReturnBookWithNegativeIdTest例外がスローされました: System.InvalidOperationException:アプリケーション設定ファイルで 'BookshelfConnection'という名前の接続文字列が見つかりませんでした。 '書き込みテストメソッドに時間がかかるような雑用はしませんか?私は、メインプロジェクトへの参照を一旦追加すると、そこからテストプロジェクトが取得されるという印象を受けました。 – Disasterkid

+1

これは似ています - 接続文字列を再定義する必要があります - それはあなたのプロダクトDBと異なることができます - あなたのユニットテストプロジェクトApp.configで異なることができます初期設定には時間がかかることに同意します。恐らく疑似/「偽の」DBデータについて考えようとしますか? –

+0

合理的に聞こえる。 – Disasterkid

関連する問題