我有一个单元测试在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上尝试过,但失败:(
过去,我遇到了与您类似的问题,这取决于测试运行的顺序,以了解其在本地获得成功的原因。
确保您的测试不以任何方式依赖其他人。
我认为这不是詹金斯的问题。我认为这是测试案例的问题。
代码_sut.validate
能够正确生成URI。
我假设Jenkins在内部转换为每个containre(微服务)提供的URL,并正确解析该名称。被测系统运行良好,并且已成功创建UR1。
请更改您的输入URL,您的应用将开始抛出错误。