如何修复在本地成功但在詹金斯失败的NUnit测试?

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

我有一个单元测试在Visual Studio和命令行上在本地成功完成,但是在Jenkins构建pull request时失败了。

总共有29个测试,但是只有一个失败,我找不到发生这种情况的原因。

测试方法是这样:

RuleFor(url => url).Must(url => Uri.TryCreate(url, UriKind.Absolute, out Uri uriResult))
                .OnFailure((url) => throw new CustomException($"The URL {url} provided is not a valid URL"));

单元测试:Assert.Throws<CustomException>(() => _sut.Validate("/image.png"));

错误:Expected CustomException but found null

我正在Windows上运行.NET Core 3.1,并且Jenkins中的测试正在Docker中运行。

似乎问题是它仅在Windows上成功。我在Mac上尝试过,但失败:(

docker unit-testing jenkins .net-core nunit
2个回答
0
投票

过去,我遇到了与您类似的问题,这取决于测试运行的顺序,以了解其在本地获得成功的原因。

确保您的测试不以任何方式依赖其他人。


0
投票

我认为这不是詹金斯的问题。我认为这是测试案例的问题。

代码_sut.validate能够正确生成URI。

我假设Jenkins在内部转换为每个containre(微服务)提供的URL,并正确解析该名称。被测系统运行良好,并且已成功创建UR1。

请更改您的输入URL,您的应用将开始抛出错误。

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