首页 > 解决方案 > Docker / TeamCity / xUnit - 测试选项卡缺失和失败的测试不会停止构建

问题描述

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

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

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

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

感激地收到任何帮助 - 我正在为这个而撕毁我的头发!

标签: dockertestingteamcityxunit

解决方案


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

我的 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 代理中。

现在我只需要弄清楚当测试覆盖率不够高时如何使构建失败。请参阅此处了解我的下一个问题:如果在 Docker 下运行的 .NET Core 单元测试的代码覆盖率低于 90%,则破坏 TeamCity 中的构建


推荐阅读