0

我在使用 Specflow 和 Specrun 的 .netcore 3.1 上编写了一个 C# 测试自动化框架。

我可以使用 Specrun 运行测试并获得报告,但是我想获得 Allure 报告。

所以我安装了 Specflow.Allure。我有一个 allureConfig.json。

我希望我现在可以运行测试并获得 Allure 报告。

然而,事情似乎并没有那么简单。

当我尝试运行测试时,如果失败并显示如下消息。

有人知道我在做什么错吗?我是否需要添加更多代码才能获得 Allure 报告?

消息:值不能为空。(参数“键”)堆栈跟踪:System.ArgumentNullException:值不能为空。(参数'key') ConcurrentDictionary 2.ThrowKeyNullException() ConcurrentDictionary2.TryGetValue(TKey key, TValue& value) ConcurrentDictionary 2.get_Item(TKey key) AllureStorage.Get[T](String uuid) AllureLifecycle.UpdateFixture(String uuid, Action1 update) AllureLifecycle.UpdateFixture(Action1 update) AllureLifecycle.StopFixture(Action1 beforeStop) AllureBindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) TestExecutionEngine.InvokeHook(IBindingInvoker invoker, IHookBinding hookBinding, HookType hookType) line 352 RunnerTestExecutionEngine.InvokeHook(IBindingInvoker invoker, IHookBinding hookBinding, HookType hookType) TestExecutionEngine.FireEvents(HookType hookType) line 338 TestExecutionEngine.FireScenarioEvents(HookType bindingEvent) line 322 RunnerTestExecutionEngine.FireScenarioEvents(HookType bindingEvent) TestExecutionEngine.OnScenarioStart() line 199 RunnerTestExecutionEngine.OnScenarioStart() TestRunner.OnScenarioStart() line 55 LM01InitialCaseFeature.ScenarioStart ) LM01InitialCaseFeature。LM01_01DefaultLM01InitialCase() 第 4 行 StaticOrInstanceMethodExecutor.ExecuteInternal(ITestThreadExecutionContext testThreadExecutionContext) StaticOrInstanceMethodExecutor.Execute(ITestThreadExecutionContext testThreadExecutionContext) TestNodeTask.Execute()

4

1 回答 1

1

解决方案是添加 specflow.json 文件并设置为“如果较新则复制”,以便将其复制到调试文件夹。

specflow.json 的内容是:

{
  "stepAssemblies": [
    {
      "assembly": "Allure.SpecFlowPlugin"
    }
  ]
}

进行此更改后,测试正确运行并生成了 Allure 报告。

于 2020-05-01T18:18:48.113 回答