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)
归档时间: |
|
查看次数: |
1142 次 |
最近记录: |