4

我有一个使用 OLEDB 从 Excel 文件导入数据的组件。由于业务风险和时间限制,我的可执行 shell 被编译为 x86(32 位)以避免64 位 OLEDB 问题,并且组件在加载到我的 32 位 shell 时可以完美运行。

但是,我的 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 回答