代码之家  ›  专栏  ›  技术社区  ›  Ruben Bartelink

TeamBuild的运行部分为x64[对于xunit.net[测试]

  •  2
  • Ruben Bartelink  · 技术社区  · 16 年前

    /platform:AnyCpu ,但我的TeamBuild调用TFSBuild.proj项目是香草的。

    我有一些特定于x64的测试(`/平台:x64'),这会导致ImageFormatException阻塞。我还有一个标记为x86的测试组件,所以它不可能是全部或全部。

    NUnit在MSBuild任务上有一个平台开关,xunit没有。

    1. 调用64位msbuild子任务来调用xunit任务-没有ToolPath参数,所以如果这是一个好主意,那么传递子环境的最干净的Exec任务语法是什么?
    2. 将整个TeamBuild切换到x64和特殊情况下的x86(但这正好使我陷入needinn到特殊情况下的x86的相反情况)。(我还假设除了必须确保自定义任务位于正确的PROGRA~…\MsBuild目录之外,可能会有更多的麻烦)

    1 回复  |  直到 15 年前
        1
  •  4
  •   Brad Wilson    16 年前

    xUnit.net在单独的AppDomain中,在与运行程序相同的进程中运行其测试。由于MSBuild被标记为仅32位,因此使用MSBuild xunit任务运行的所有测试都必须以32位模式运行。

    最简单的解决方法是不使用MSBuild任务,而是向控制台运行程序输出shell。因为这会创建一个新进程,所以默认情况下它将以64位模式运行。此外,如果您使用的是1.5测试版,我们还提供了可以强制32位模式的exe(xunit.console控制台.x86.exe),它解决了32位与64位的测试问题。

    推荐文章