C#.System.NullReference运行 MSTest 测试后引发的异常

C#. System.NullReferenceException thrown after running MSTest tests

提问人:mrk2 提问时间:7/2/2014 更新时间:1/6/2017 访问量:1824

问:

我正在使用 ReSharper 工具运行我的 MSTest 测试,但抛出此异常:

测试方法 ApiTest.Tests.RestCountriesTests.GetCountriesByCode 抛出 异常:System.NullReferenceException:对象引用未设置为 对象的实例。

注意:只有带有这些注释的测试才会失败:

        [TestMethod]
        [DeploymentItem("C:\\3.xlsx")]
        [DataSource("MyExcelDataSource2")]

但是当我通过测试->运行->运行它们时,所有测试都运行良好,所有测试都运行良好。但是我需要让它们通过ReSharper测试运行程序工作,这是HTML报告的原因。

C# Resharper MSTest NullReferenceException

评论

0赞 Caleb 7/2/2014
确保您的测试不相互依赖。不同的运行器以不同的顺序执行测试。因此,如果你的一个测试依赖于另一个测试的“副作用”,你需要清理该代码!
0赞 mrk2 7/2/2014
@Caleb我现在只是在练习,这些测试非常简单,彼此之间没有联系
0赞 Caleb 7/2/2014
你能举出一个测试失败的例子吗?结果输出还应该说明哪一行抛出了空引用。
0赞 mrk2 7/2/2014
@Caleb问题是,当我通过 Visual Studio 运行测试时,测试不会失败,而当我通过 ReSharper 运行测试时,只有使用 DataSource 的测试才会失败
0赞 Caleb 7/2/2014
你在测试中做什么?测试中的哪些代码实际上抛出了 null ref?

答:

0赞 metacubed 7/2/2014 #1

更改 Resharper 设置以在自己的进程空间中运行每个测试。转到 > > > 然后选中 。ReSharperOptionsToolsUnit Testing"Use Separate AppDomain for each assembly with tests"

0赞 Lickut 1/6/2017 #2

我遇到了类似的问题,这是加载其他文件(配置)的一些问题。我在>>、干净的解决方案中关闭了“正在测试的卷影复制程序集”,这对我有帮助。ResharperOptionsUnit Testing