【问题标题】:Xunit not working using Visual Studio Team Services Build VNextXunit 无法使用 Visual Studio Team Services Build VNext
【发布时间】:2015-09-25 04:17:58
【问题描述】:

在关注了几篇详细介绍如何让 xUnit 与 Team Services Build vNext 一起工作的博客之后:

这些都不适合我。通过检查构建日志,我收到每个测试程序集的以下警告。

--------------------
 Warning: [xUnit.net 00:00:00.1644156] Exception discovering tests from CHO.SAM.Business.Test: System.BadImageFormatException: 
 Could not load file or assembly 'c:\_Work\473cef3c\CHO\CHO.ALL\Tests\CHO.SAM.Business.Test\CHO.SAM.Business.Test\bin\Debug\xunit.execution.desktop.dll' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
--------------------

有人见过这个吗?如果是的话,你找到解决办法了吗?

我的想法是;我的测试项目是使用 .NET Framework 4.6 编译的,我想知道这是否会导致问题?如果是这样,我将不得不转移到 nUnit 或其他东西,因为我认为仅仅为了使用单个测试框架而更改编译是不正确的。

【问题讨论】:

  • 顺便说一句,它在 Visual Studio 中运行良好,可以构建、运行和识别测试......一切都很好。
  • 这些症状与herehere 描述的症状相似。看看那里的任何建议是否有帮助。
  • 我按照您的链接进行操作,但我的问题似乎略有不同。谢谢... :-)
  • 您找到解决方案了吗?我有同样的问题,但使用 4.6.1 构建 TFS 2015 XAML
  • 我添加了一个 UI 测试,它就在那里,里面什么都没有!但它会导致它工作。正在使用构建 vNext。所以不知道 XAML..

标签: asp.net-core azure-devops xunit xunit.net azure-pipelines


【解决方案1】:
  • 将“/Framework:Framework45”添加到“高级/其他控制台选项”(在 .NET 4.5 下运行)
  • 将“/Framework:Framework40”添加到“高级/其他控制台选项”(在 .NET 4.0 下运行)
  • 将“Advanced/VSTest 版本”更改为“Visual Studio 2013”​​(在 .NET 3.5 下运行)

【讨论】:

    【解决方案2】:

    此错误通常是由在 x86 测试运行器上运行的 x64 编译程序集引起的,反之亦然。检查正在运行的解决方案构建配置。

    【讨论】:

    • 感谢我检查的回复,都是 x64。 ...值得你检查一下。
    • 设置测试项目 Build > Platform target to x86 为我修复了它。
    【解决方案3】:

    我也有同样的问题。添加 UI 测试并没有为我解决这个问题。我找到了两个可行的替代方案:

    1. 使用 .net 4.5

    2. 将 VSTest 任务的高级选项设置为使用 2013 而不是 2015。

    希望这将很快得到解决。

    【讨论】:

    • 没有选项选择 4.5... 我怀疑这是因为 xunit 库是 4.5...
    【解决方案4】:

    最后,我添加了一个 Visual Studio Coded UI 测试项目并删除了它的所有内容(一个类),它是空的!

    我假设它添加了一个参考或构建服务器认为它需要的东西。

    我现在正在让我的单元测试被发现、运行并具有代码覆盖率。

    奇怪!

    它有效,但我不知道为什么......

    【讨论】:

      【解决方案5】:

      我在使用 .Net Core 类库针对 .Net Core Web 项目 (.Net Framework) 运行 xUnit 测试时遇到了这个问题。对我来说解决这个问题的方法是将运行测试的默认处理器更改为 VS2015 中的 X64,方法是:

      菜单栏 -> 测试 -> 测试设置 -> 默认处理器架构 -> X64

      此解决方案由@RehanSaeed 发布在此处https://github.com/dotnet/cli/issues/3103

      【讨论】:

        猜你喜欢
        • 2018-05-19
        • 1970-01-01
        • 1970-01-01
        • 2015-11-18
        • 2017-03-10
        • 1970-01-01
        • 1970-01-01
        • 2013-01-25
        • 1970-01-01
        相关资源
        最近更新 更多