c# - 在 64 位环境中将指定的 NUnit 测试作为 32 位进程运行

标签 c# nunit teamcity oledb

我有一个组件使用 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

我的解决方案似乎是

  1. 更改 CI 测试运行器 - 不可行,因为其他 10 个团队正在使用该测试运行器
  2. 确保此测试在 32 位进程中运行

那么,有没有办法告诉 NUnit 或 TeamCity NUnit 测试运行器在 32 位进程中运行特定测试?理想情况下,我希望相同的测试在 IDE 和 CI 中不加修改地运行。

最佳答案

在单元测试项目中将“平台目标”更改为 x86 应该可以解决问题。

关于c# - 在 64 位环境中将指定的 NUnit 测试作为 32 位进程运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15614192/

相关文章:

c# - 如何创建一个全局唯一的错误 ID? C#

c# - 阅读 Gmail 收件箱

c# - 如何不在 nUnit 2.6.4 xml 结果中显示堆栈跟踪?

c# - 在 visual studio 2017 中传递参数,如 nunit-console params cli

api - 如何在 TeamCity 中的特定构建上添加网络 Hook

tfs - CruiseControl,TeamCity和Team Foundation Server之间的比较

c# - 如何在 for 循环的命令末尾添加递增数字?

c# - 模拟C#中同一类中的方法

testing - TeamCity 中的服务器管理特定配置在刷新后丢失

c# - 提取渐变画笔属性