【问题标题】:Run a specified NUnit test as a 32-bit process in a 64-bit environment在 64 位环境中将指定的 NUnit 测试作为 32 位进程运行
【发布时间】: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' 提供程序未在本地注册 机器

我的解决方案似乎是

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

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

【问题讨论】:

    标签: c# nunit teamcity oledb


    【解决方案1】:

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

    【讨论】:

    • 这不会影响整个测试项目吗?我猜 OP 想专门为测试做这个。
    • @SrikanthVenugopalan:是的,它会影响整个测试项目。由于完整的应用程序以 x86 执行,我认为当完整的测试套件也以 x86 执行时应该没问题。
    • 对我来说很公平,也许@MarkGreen 可以决定。
    • 如果有一个测试级粒度解决方案,我会更加出色,但我想我总是可以创建一个单组件测试程序集。
    猜你喜欢
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-01
    • 2022-11-12
    相关资源
    最近更新 更多