我有一个组件使用 OLEDB 从 Excel 文件导入数据。由于业务风险和时间限制,我的可执行 shell 被编译为 x86(32 位)以避免 64-bit OLEDB problem当组件加载到我的 32 位 shell 中时,该组件可以完美运行。
但是,我的 CI 构建进程 (TeamCity) 正在 64 位进程中运行其 TestRunner,因此针对上述功能的单元测试失败并出现常见的错误消息:
Test(s) failed. System.InvalidOperationException : The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine
我的解决方案似乎是
- 更改 CI 测试运行器 - 不可行,因为其他 10 个团队正在使用该测试运行器
- 确保此测试在 32 位进程中运行
那么,有没有办法告诉 NUnit 或 TeamCity NUnit 测试运行器在 32 位进程中运行特定测试?理想情况下,我希望相同的测试在 IDE 和 CI 中不加修改地运行。
最佳答案
在单元测试项目中将“平台目标”更改为 x86 应该可以解决问题。
关于c# - 在 64 位环境中将指定的 NUnit 测试作为 32 位进程运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15614192/