带有 Shouldly 语句的单元测试失败
Unit Tests with Shouldly statement fail
自从某些天以来,我在本地计算机上 Visual Studio 运行 中的所有 C# 单元测试在到达第一个 Shouldly 语句时都出现以下 TypeInitializationException:
The type initializer for 'Shouldly.ShouldlyConfiguration' threw an exception
有内部异常
Illegal characters in path
和堆栈跟踪:
at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)
at System.IO.Path.Combine(String path1, String path2)
at Shouldly.Configuration.DiffTool.<>c__DisplayClass10_0.<GetFullPath>b__2(String path)
at System.Linq.Enumerable.<>c__DisplayClass7_0`3.<CombineSelectors>b__0(TSource x)
at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
at Shouldly.Configuration.DiffTool.GetFullPath(String fileName)
at Shouldly.Configuration.DiffTool.Discover(String path)
at Shouldly.Configuration.DiffTool..ctor(String name, String path, ArgumentGenerator argGenerator)
at Shouldly.Configuration.KnownDiffTools..ctor()
at Shouldly.Configuration.KnownDiffTools..cctor()
https://github.com/shouldly/shouldly/issues/422 上也有类似的问题,但我的 PATH 环境是正确的。
对于独立于路径的任何单元测试项目,我都遇到相同的错误。
即使是最简单的测试
[TestClass]
public class UnitTest2
{
[TestMethod]
public void TestMethod1()
{
int i = 1;
i.ShouldBe(1);
}
}
在其他机器上我无法重现相同测试的问题。
根据该堆栈跟踪,您的 diff 工具的路径不是有效路径。
应该从 PATH 变量中检索所有路径并尝试 "guess" 预定义差异工具之一的路径。
当其中一个路径无效时,会引发此异常。目前正在实施解决方案。参见 https://github.com/shouldly/shouldly/pull/423
自从某些天以来,我在本地计算机上 Visual Studio 运行 中的所有 C# 单元测试在到达第一个 Shouldly 语句时都出现以下 TypeInitializationException:
The type initializer for 'Shouldly.ShouldlyConfiguration' threw an exception
有内部异常
Illegal characters in path
和堆栈跟踪:
at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)
at System.IO.Path.Combine(String path1, String path2)
at Shouldly.Configuration.DiffTool.<>c__DisplayClass10_0.<GetFullPath>b__2(String path)
at System.Linq.Enumerable.<>c__DisplayClass7_0`3.<CombineSelectors>b__0(TSource x)
at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
at Shouldly.Configuration.DiffTool.GetFullPath(String fileName)
at Shouldly.Configuration.DiffTool.Discover(String path)
at Shouldly.Configuration.DiffTool..ctor(String name, String path, ArgumentGenerator argGenerator)
at Shouldly.Configuration.KnownDiffTools..ctor()
at Shouldly.Configuration.KnownDiffTools..cctor()
https://github.com/shouldly/shouldly/issues/422 上也有类似的问题,但我的 PATH 环境是正确的。
对于独立于路径的任何单元测试项目,我都遇到相同的错误。
即使是最简单的测试
[TestClass]
public class UnitTest2
{
[TestMethod]
public void TestMethod1()
{
int i = 1;
i.ShouldBe(1);
}
}
在其他机器上我无法重现相同测试的问题。
根据该堆栈跟踪,您的 diff 工具的路径不是有效路径。
应该从 PATH 变量中检索所有路径并尝试 "guess" 预定义差异工具之一的路径。
当其中一个路径无效时,会引发此异常。目前正在实施解决方案。参见 https://github.com/shouldly/shouldly/pull/423