私のビルドサーバはMSBuildを使用してアプリケーションをビルドします。私たちの単体テストはテストのためにいくつかのプライベートメンバーにアクセスする必要があるので、組み込みのプライベートアクセサリーを使用します。 Visual Studioはそれで問題ありませんが、我々はビルドサーバーへの我々のコードをプッシュするときに我々は、エラーを取得:MSBuildを使用するとプライベートアクセサが作成されない
MyTest.cs (96,13): errorCS0246: The type or namespace name 'My_Accessor' could not be found (are you missing a using directive or an assembly reference?)
なぜそれがMSBuildのプライベートアクセサを無視し、どのように私はそれを修正することができるということですか?
当社のテストフレームワークにはNUnitを使用し、継続的インテグレーションサーバーにはCruiseControl.Netを使用します。
EDIT: コメントごとに、リポジトリパターンクラスの基本クラスのテストコードを次に示します。
MockRepository mocks = new MockRepository();
IDataContextWrapper wrapper = mocks.DynamicMock<IDataContextWrapper>();
Repository_Accessor target = new Repository_Accessor(wrapper);
Assert.AreEqual(wrapper, target._DataContext);
このコードは、単にメンバ変数がモックラッパーに設定されている_DataContextことを検証します。ビルドサーバーでMSBuildを使用してビルドすると失敗します。
プライベートアクセサがユニットテストとやりとりする方法を示すコードを表示することができます。ただし、アセンブリ参照がMSBuildの設定にないと思われます。 –
私は、どのように私のアクセサを使用しているかについてのアイデアを与えるべきであるいくつかの簡単なコードを入れました。 – Odd
あなたの開発マシンのMSBuildを使ってビルドしようとしましたか?これはMSBuildに問題があるのか、ビルドサーバーの設定に問題があるのかを把握するのに役立ちます。 –