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