执行后获取 Nunit 测试命令以分析脆弱的测试

Get Nunit Test Order after Execution to analyze brittle Tests

这不是关于设置和拆卸的问题。 这不是关于订单属性的问题。

当我 运行 我的 Nunit 测试时,其中一个会杀死其他测试所依赖的依赖项。我的摘要显示了很多失败的测试。

一个好的起点将是最后一次通过的测试,通过随后的失败,我会逐步下降。我需要查看测试的日志文件或更好的东西。

我正在 运行使用 visual studio 中的测试适配器进行测试。

这是我的包裹:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Castle.Core" version="3.3.3" targetFramework="net452" />
  <package id="NUnit" version="3.5.0" targetFramework="net452" />
  <package id="NUnit3TestAdapter" version="3.6.0" targetFramework="net452" />
  <package id="RhinoMocks" version="3.6.1" targetFramework="net452" />
  <package id="TestStack.White" version="0.13.3" targetFramework="net452" />
</packages>

我不知道上次测试运行 的日志文件在哪里。搜索网络或堆栈溢出对我没有帮助。我可能使用了错误的搜索词。

我的问题是我需要找到一个脆弱的测试并未能通过后续测试,这样我才能弄清楚如何解决它。

编辑: 我发现了一些关于跟踪记录器的信息。 我可以使用我的基础 SetUpFixtureOneTimeSetUp 来激活它。 InternalTrace.Initialize(TestContext.CurrentContext.WorkDirectory + "nunittrace.log", InternalTraceLevel.Debug); 遗憾的是,这没有实际效果,文件仅包含一行确认初始化。

编辑: 我不想依赖测试顺序或控制测试顺序。使用 order 属性标记测试是完全不可能的。我想要的是在执行后查看测试顺序,这样我就可以找到究竟是什么让这些测试变得脆弱,以便通过控制这种脆弱性来修复它。设置/拆卸,另一个界面?找到问题后我将拥有的所有选项。

对于这种性质的问题,我会使用控制台运行器而不是 VS 适配器。 --labels:Before 选项将为您提供所有测试按执行顺序排列的列表。

如果您正在使用任何并行执行,显然您应该为这些测试运行将其关闭。您可以在控制台运行器中执行此操作,而无需通过在命令行上使用 --workers=0 来编辑测试代码。