VSTS:带有Docker的dotnet无法发布测试

Cla*_*doo 6 unit-testing docker .net-core docker-compose azure-devops

我尝试在持续集成过程中在VSTS上发布我的单元测试,我使用docker,并且在执行发布任务时,我仍然收到以下错误,因此找不到dotnet test命令生成的xml文件。

No test result files matching **\test-results.xml were found.
Run Code Online (Sandbox Code Playgroud)

如果我在本地运行命令docker-compose run web-tests,则会创建一个tests-results文件夹,其中包含预期的test-results.xml文件。

我在VSTS上做错了什么?

代码仓库:Github

我的文件夹架构:

web/
??? web/
?   ??? web.csproj
?   ??? Dockerfile
?       
??? web.test/
?  ??? web.test.csproj
?       
??? web.sln
??? docker-compose.yml
??? docker-compose.override.yml
Run Code Online (Sandbox Code Playgroud)

Dockerfile(编辑删除多余的dotnet测试命令):

FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src 
COPY web.sln ./
COPY web/web.csproj web/
COPY web.test/web.test.csproj web.test/
RUN dotnet restore -nowarn:msb3202,nu1503
COPY . .
WORKDIR /src/web
RUN dotnet build -c Release -o /app

FROM build as test
WORKDIR /src/web.test
#RUN dotnet test

FROM build AS publish
WORKDIR /src/web
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "web.dll"]
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml:

version: '3.4'
services:
  web:
    image: web
    build:
      context: .
      dockerfile: web/Dockerfile
  web-tests:
    image: web-tests
    build:
      context: .
      dockerfile: web/Dockerfile      
      target: test
    volumes: 
      - ${BUILD_ARTIFACTSTAGINGDIRECTORY:-./tests-results/}:/tests
Run Code Online (Sandbox Code Playgroud)

docker-compose.override.yml:

version: '3.4'
services:
  web:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    ports:
      - "80"
  web-tests:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    ports:
      - "80"
    entrypoint:
      - dotnet
      - test
      - --logger
      - trx;LogFileName=/tests/test-results.xml
Run Code Online (Sandbox Code Playgroud)

还有我的两个VSTS任务 docker-compose运行任务 发布测试任务

sta*_*SFT 1

您需要取消选中 Docker Compose 任务的“后台运行”选项。

在此输入图像描述