我通过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();
}
}
}
1条答案
按热度按时间42fyovps1#
Docker文件是由VS自动生成的,我不得不修剪文件以使其工作-
dotnet test
构建和恢复项目,因此构建和发布步骤是不必要的。但我仍然不知道我的问题中Docker有什么问题。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)