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