【问题标题】:Get Nunit Test Order after Execution to analyze brittle Tests执行后获取 Nunit 测试顺序以分析脆性测试
【发布时间】:2017-08-31 06:56:31
【问题描述】:

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

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

一个好的起点是最后一次通过的测试,在随后的失败中一路向下。我需要查看测试的日志文件或其他更好的东西。

我正在使用 Visual Studio 中的 testadapter 运行测试。

这是我的包裹:

<?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 属性标记测试是完全不可能的。我想要的是在执行后查看测试顺序,这样我就可以找到究竟是什么让这些测试变得脆弱,以便通过控制这种脆弱性来修复它。安装/拆卸,另一个界面?一旦发现问题,我将拥有的所有选项。

【问题讨论】:

  • 如果您正在创建依赖于顺序的测试,那么您的测试很脆弱,不要这样做!
  • @LasseV.Karlsen 我完全同意,这就是为什么我想找到脆性测试以便修复它。我不是在寻找如何控制订单,我正在寻找一个日志文件,它会在事后告诉我订单,以便我可以识别易碎的订单。现在我可以告诉你我有x红色和y绿色。当我运行所有和 x+y 绿色时,当我重新运行红色时。我认为y组会影响使x变红的东西。我找不到那是什么。我需要一个日志文件,这样我才能找到要搜索的位置。

标签: visual-studio logging nunit nunittestadapter


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    相关资源
    最近更新 更多