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

toiithl6  于 12个月前  发布在  Docker
关注(0)|答案(1)|浏览(82)

我通过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 run tests
Microsoft(R)测试执行命令行工具版本17.7.1(x64)版权所有(c)Microsoft Corporation。All rights reserved.
正在启动测试执行,请稍候...共有1个测试文件与指定的模式匹配。/app/TestProject1.dll中没有可用的测试。请确保测试发现者和执行者>已注册,并且平台和框架版本设置正确,然后重试。

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

        [Test]
        public void Test1()
        {
            Assert.Pass();
        }
    }
}
42fyovps

42fyovps1#

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 run tests
正在确定要还原的项目...
所有项目都是最新的,以便恢复。
TestProject 1->/app/bin/binding/net7.0/TestProject1.dll测试运行/app/bin/binding/net7.0/TestProject1.dll(.NETCoreApp,Version=v7.0)Microsoft(R)测试执行命令行工具版本17.7.1(x64)版权所有(c)Microsoft Corporation。All rights reserved.
正在启动测试执行,请稍候...共有1个测试文件与指定的模式匹配。
通过!-失败:0,通过:1,跳过:0,共1条记录,>持续时间:17 ms - TestProject1.dll(net7.0)

相关问题