在 Docker 中运行测试时没有可用的测试

问题描述 投票:0回答:1

我通过 Visual Studio 创建了 NUnit 项目并尝试在 Docker 中运行它。

FROM mcr.microsoft.com/dotnet/sdk:7.0 AS base
WORKDIR /app

FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /src
COPY ["TestProject1.csproj", "TestProject1/"]
RUN dotnet restore "TestProject1/TestProject1.csproj"
COPY . .
WORKDIR "/src/TestProject1"
RUN dotnet build "TestProject1.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "TestProject1.csproj" -c Release -o /app/publish /p:UseAppHost=false

FROM base as final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "test", "TestProject1.dll", "/TestAdapterPath:."]

我用

docker build -t tests .
构建了一个图像,最后,我运行了它,但它没有执行测试。如果没有最后一个参数,它也会显示
Additionally, path to test adapters can be specified using /TestAdapterPath command. Example  /TestAdapterPath:<pathToCustomAdapters>.
。我不确定应该包含哪个参数来运行
dotnet test
还是我使用了错误的 sdk 映像?

PM> docker 运行测试

Microsoft (R) 测试执行命令行工具版本 17.7.1 (x64) 版权所有 (c) Microsoft Corporation。保留所有权利。

正在开始测试执行,请稍候... 共有 1 个测试文件与指定模式匹配。 /app/TestProject1.dll 中没有可用的测试。确保测试发现者和执行者已注册,并且平台和框架版本设置合适,然后重试。

namespace TestProject1
{
    public class Tests
    {
        [SetUp]
        public void Setup()
        {
        }

        [Test]
        public void Test1()
        {
            Assert.Pass();
        }
    }
}
c# docker nunit dotnet-test
1个回答
0
投票

Docker 文件是由 VS 自动生成的,我必须修剪该文件才能使其工作 -

dotnet test
构建并恢复项目,因此不需要构建和发布步骤。但我仍然不知道我的问题中的 Docker 出了什么问题。

FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /app
COPY . .
RUN dotnet restore
ENTRYPOINT ["dotnet", "test"]

PM> docker 运行测试

确定要恢复的项目...

所有项目都是最新的以便恢复。

TestProject1 -> /app/bin/Debug/net7.0/TestProject1.dll 测试运行 /app/bin/Debug/net7.0/TestProject1.dll (.NETCoreApp,Version=v7.0) Microsoft (R) 测试执行命令行工具版本 17.7.1 (x64) 版权所有 (c) Microsoft Corporation。保留所有权利。

正在开始测试执行,请稍候... 共有 1 个测试文件符合指定模式。

通过了! - 失败:0,通过:1,跳过:0,总计:1,>持续时间:17 毫秒 - TestProject1.dll (net7.0)

© www.soinside.com 2019 - 2024. All rights reserved.