【问题标题】:C#. System.NullReferenceException thrown after running MSTest testsC#。运行 MSTest 测试后引发 System.NullReferenceException
【发布时间】:2014-08-22 19:47:03
【问题描述】:

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

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

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

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

但是当我通过 Test -> Run -> All tests 运行它们时,一切正常,所有测试都运行良好。但我需要通过 ReSharper 测试运行程序让它们工作,原因是 HTML 报告。

【问题讨论】:

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

标签: c# resharper mstest nullreferenceexception


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我遇到了类似的问题,加载其他文件(配置)时出现了一些问题。我在 Resharper>Options>Unit Testing 中关闭了“正在测试的影子复制程序集”,清理了解决方案,它帮助了我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-15
      • 1970-01-01
      • 2011-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多