【问题标题】:Docker / TeamCity / xUnit - Tests tab missing and failing tests don't stop the buildDocker / TeamCity / xUnit - 缺少测试选项卡和失败的测试不会停止构建
【发布时间】:2018-09-04 19:57:09
【问题描述】:

我在 Linux 上使用 Docker Swarm 来托管 TeamCity。在我的实例中,我使用 xUnit 通过 docker-compose 文件运行集成测试。

当我运行我的测试(如果 xUnit 测试失败,这反过来又会停止我的构建)时,我需要使用哪些步骤来显示“测试”选项卡,这让我真的很苦恼。我能够让它在 TeamCity 2017.1.2 中正常工作,但它拒绝在 TeamCity 2017.2.4 中工作。

我已按照示例将“ENV TEAMCITY_PROJECT_NAME=fake”添加到我的 Docker 文件中(我认为这就是我需要做的所有事情)。

如何恢复“测试”选项卡,并在测试中断时停止构建?!

感谢您提供的任何帮助 - 我正在为此而烦恼!

【问题讨论】:

    标签: docker testing teamcity xunit


    【解决方案1】:

    谢谢。我确实设法让它最终工作。

    我的 Dockerfile 结尾如下:

    FROM microsoft/dotnet:2-sdk
    
    ...
    ...
    
    # Set the flag to tell TeamCity that these are unit tests:
    ENV TEAMCITY_PROJECT_NAME = ${TEAMCITY_PROJECT_NAME}
    
    # Run the tests:
    ENTRYPOINT ["dotnet", "test", "--verbosity=normal"]
    

    我还将它添加到我正在使用的 docker-compose 文件中:

    version: '3.6'
      ...
      ...
      steve.core.tests:
        image: steve.core.tests:tests
          build:
            context: .
            dockerfile: Dockerfile-run-tests
          environment:
            - TEAMCITY_PROJECT_NAME
    

    可能是腰带和牙套,但它似乎有效。

    我正在使用具有相同代理版本的 TeamCity 服务器版本 2018.1.1。我已将 Docker Compose v1.22.0 安装到我的 TeamCity 代理中。

    现在我只需要弄清楚当测试覆盖率不够高时如何使构建失败。我的下一个问题请看这里:Breaking the build in TeamCity if .NET Core unit tests running under Docker have code-coverage less than 90%

    【讨论】:

      【解决方案2】:

      我也遇到了这个问题。 Nick Adcock 在https://devblog.bango.com/2017/10/13/build-in-docker-test-with-net-core-report-to-teamcity/

      发布了一个不错的解决方案

      他提供了 microsoft/dotnet:2.0-sdk 映像的更新版本,该映像以 TeamCity 可以读取、使用和呈现的格式输出测试结果。我将它与 TeamCity 2017.2.4 一起使用,它似乎工作正常。它没有正确计算我的测试,但至少现在我可以轻松看到测试结果。

      希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 2013-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-04
        相关资源
        最近更新 更多