4

OLEDBを使用してExcelファイルからデータをインポートするコンポーネントがあります。ビジネス上のリスクと時間の制約により、実行可能シェルは64ビットOLEDBの問題を回避するためにx86(32ビット)としてコンパイルされ、コンポーネントは32ビットシェルにロードされたときに問題なく実行されます。

ただし、私のCIビルドプロセス(TeamCity)は64ビットプロセスでTestRunnerを実行しているため、上記の機能を対象とした単体テストは通常​​のエラーメッセージで失敗します。

テストに失敗しました。System.InvalidOperationException:'Microsoft.Jet.OLEDB.4.0'プロバイダーがローカルマシンに登録されていません

私の解決策は

  1. CIテストランナーを変更します-テストランナーは他の10チームによって使用されているため、実行できません
  2. このテストが32ビットプロセスで実行されていることを確認します

では、NUnitまたはTeamCity NUnitテストランナーに、32ビットプロセスで特定のテストを実行するように指示する方法はありますか?理想的には、IDEとCIの両方で同じテストを変更せずに実行したいと思います。

4

1 に答える 1

5

単体テストプロジェクトで「プラットフォームターゲット」をx86に変更すると、うまくいくはずです。

于 2013-03-25T11:54:05.637 に答える