我有一个使用 OLEDB 从 Excel 文件导入数据的组件。由于业务风险和时间限制,我的可执行 shell 被编译为 x86(32 位)以避免64 位 OLEDB 问题,并且组件在加载到我的 32 位 shell 时可以完美运行。
但是,我的 CI 构建过程 (TeamCity) 在 64 位进程中运行其 TestRunner,因此针对上述功能的单元测试失败并显示通常的错误消息:
测试失败。System.InvalidOperationException:“Microsoft.Jet.OLEDB.4.0”提供程序未在本地计算机上注册
我的解决方案似乎是
- 更改 CI 测试运行器 - 不可行,因为其他 10 个团队使用该测试运行器
- 确保此测试在 32 位进程中运行
那么,有没有办法告诉 NUnit 或 TeamCity NUnit 测试运行器在 32 位进程中运行特定测试?理想情况下,我希望在 IDE 和 CI 中不加修改地运行相同的测试。