2

最近、VS2008内で単体テストを実行する場合と、コマンドラインでmstestを使用して同じ単体テストを実行する場合にいくつかの不整合が発生しました。

私のシナリオは少し進んでいるので、おそらくいくつかのコーナーにぶつかったでしょう。同じデータソースに対して多くのデータ駆動型単体テストを実行しています。PostSharpを試すのも好きです。だから、私はPostSharpアスペクトを書きました---TestDataSourceユニットテストメソッドではなく、ユニットテストタイプに適用します。タイプが作成されると、このアスペクトはPostSharpにDataSource、タイプ内のすべての単体テストメソッドに属性をアタッチするように指示します。

Reflectorでビルドされたアセンブリを調べると、各テストメソッドが実際に正しいDataSource属性に関連付けられていることがわかります。コマンドラインでmstestを使用してテストを実行すると、期待どおりに動作します。各テストは、指定されたデータソースに対して実行されます。

ただし、VS2008でまったく同じ単体テストを実行しても、データソースを見つけることができません。これは、VS2008がビルドされたアセンブリを無視し、ソースコードを確認するかのようです。もちろん、DataSource属性はビルド中に挿入されるため、データ駆動型テストではないようです。

展開されたアイテムに問題はありません。テストに手動でアタッチするDataSourceと、VS2008でテストを正常に実行できます。

何か案は?

4

1 に答える 1

0

テストにブレークポイントを設定し、読み込まれたモジュールのリストを調べると、デバッグしているアセンブリの正確なパスがどれかがわかります。それは(bin\Debugで)期待されるものですか?デバッガーの実行中に Reflector を使用してこのファイルを開くと、内部に PostSharp が表示されますか?

奇妙なのは、PostSharp 単体テストの一部が MSTest 用に作成されており、Visual Studio から問題なく実行されることです...

于 2009-07-24T15:18:39.267 に答える