【问题标题】:Azure Pipeline - wrong characters returned as a result of AssertAzure Pipeline - 由于 Assert 而返回的错误字符
【发布时间】:2019-06-18 14:43:34
【问题描述】:

无法弄清楚如何使用从我的解决方案中的 xUnit-tests 项目(ASP.NET Core 2,解决方案中的测试项目)返回的国际(在本例中为俄语)字符来解决我的问题。

问题是:如何让它们可读?

我使用的是基于 Ubuntu 16.04 的 build-machine,上面你可能会看到 Assert 失败的结果。应该比较 2 个字符串,我什至不明白我在那里有什么字符串。所以我想要的是看到真实的文本而不是这些 ��� 。

我想这也可能是本地测试失败的原因,在我的笔记本电脑上一切都很好,我没有失败的测试。但在那里我可以看到一些额外的字符 - 那是什么?看不懂……

这是在 Azure Pipeline 上运行测试的部分(来自 azure-pipelines.yml)^

- task: DotNetCoreCLI@2
  displayName: 'dotnet test $(buildConfiguration)'
  name: testsRun
  continueOnError: true
  inputs:
    command: test    
    projects: '*Test.*/*.csproj'
    arguments: '--configuration $(buildConfiguration) --collect:"Code coverage" --no-build --no-restore'
    testRunTitle: 'run all tests'
    publishTestResults: true

提前致谢!

PS - 上次在这里问问题是很久以前的事了:)

【问题讨论】:

    标签: localization azure-devops xunit


    【解决方案1】:

    我可以知道以下问题吗?

    1. 您在测试项目中使用了 *.cs 文件的哪种编码?您可以使用编辑器工具查看编码格式。它应该是 UTF-8。本主题可能对您有所帮助。

    Character encoding errors with .NET Core on Linux

    1. 您运行管道的代理池 (Ubuntu 16.04) 是本地 ubuntu 机器或 vm,还是从 Azure DevOps 中的代理池列表中选择主机?如果是本地机器或虚拟机,则需要检查操作系统是否支持俄语。

    我无法重现此问题。文本显示为可读。测试项目由 VS 2017 创建。代理池为 DevOps 中列出的 Hosted Ubuntu 1604。

            Assert.Equal("здравствуй, мир!", "здравствуй, мир11!");
    

    请看结果。Azure PipeLine Test

    【讨论】:

    • 非常感谢!在我以 UTF8 编码保存 CS 文件后,我的测试通过了。
    猜你喜欢
    • 2021-09-15
    • 2021-03-30
    • 1970-01-01
    • 2021-01-10
    • 2022-10-20
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 2023-03-04
    相关资源
    最近更新 更多