【问题标题】:How to Allure-behave generate report from test cases. Allure generated only one report from one test case如何 Allure-behave 从测试用例生成报告。 Allure 仅从一个测试用例生成一份报告
【发布时间】:2018-03-13 22:42:28
【问题描述】:

当我从here 使用此步骤两次时:

$ behave -f allure_behave.formatter:AllureFormatter -o %allure_result_folder% ./features

然后

$ allure serve %allure_result_folder%

总是有 1 个测试用例。我怎样才能设法总结测试用例? 我想看测试用例。

这段代码我也运行了两次:

behave -f allure_behave.formatter:AllureFormatter -o results ./features

然后:

allure generate results/ -o report/

但是,我仍然只得到 1 个测试用例。

我想看看例如 similar outcome

【问题讨论】:

  • 以上一切正常,看起来像一个错误或什么的。我们需要有关您的功能和行为/魅力版本的更多信息。您可以通过 gitter 或作为官方 repo 上的新问题提供它吗?

标签: allure python-behave


【解决方案1】:

我对出了什么问题有几个猜测。

首先你说你已经运行了两次同样的事情,这让我认为你可能对 Allure 似乎如何组织结果有一个错误的假设。如果您只编写了 1 个 Behave 场景,则运行相同的测试两次只会显示 1 个测试。如果您单击测试,后续运行将显示在“重试”选项卡下(不确定为什么它不称为历史记录,但如果您需要历史记录,它现在位于答案的底部)。您需要 2 个行为场景才能出现第二个测试。

其次,您的结果文件夹似乎正在更改您提到reportresults%allure_result_folder% 的路径。确保在运行之前创建一个结果文件夹,并且在行为命令中和 allure serve 之后具有相同的 -o 路径。例如,如果您有这样的文件夹结构:

folder_you_are_in/ ├── features/ │ ├── steps/ ├── allure/ │ ├── results/ | ├── reports/

你想像这样运行命令:

behave -f allure_behave.formatter:AllureFormatter -o allure/results ./features

然后是allure generateallure open 所需的路径(不是allure serve,不知道为什么,但 serve 在作为命令的一部分生成时似乎没有考虑历史)并确保您的路径匹配你的文件结构:

allure generate allure/results/ -o allure/reports
allure open allure/reports

屏幕截图似乎只显示了一个包含多个功能文件和场景的测试。但是,如果您正在寻找如何使历史工作,您需要将历史文件从以前的报告移动到新报告的结果文件中,出于某种原因,这只能通过构建插件自动完成,并且必须在测试时运行 manually本地。所以是这样的:

第一次试运行

 behave -f allure_behave.formatter:AllureFormatter -o allure/results ./features

为第一次测试运行生成报告

 allure generate allure/results/ -o allure/reports

第二次试运行

 behave -f allure_behave.formatter:AllureFormatter -o allure/results ./features

将第 2 步生成的报告中的历史文件夹复制到第 3 步的结果

 cp -R allure/reports/history allure/results/history

生成第二份魅力报告

 allure generate allure/results/ -o allure/reports --clean

然后打开它

 allure open allure/reports

【讨论】:

  • 这似乎是一个非常有用的答案。不过,我确实有一个问题,当我通过给定的 allure open 命令打开报告时,它会正确打开报告。但是如果我点击 index.html 并在浏览器中打开,它会说总是加载。你能给我一些想法吗?
  • 没有数据加载,在 chrome 控制台中它解释了它,Access to XMLHttpRequest at 'file:///Users/blah/blah/blah/allure-reports/widgets/summary.json' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.CORS 策略中有一些东西阻止从本地文件加载数据的浏览器。不确定allure open 是如何绕过它的,您必须查看代码。希望对您有所帮助。
  • 他们在码头服务器上运行它,因此它不会遇到 CORS 错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-19
相关资源
最近更新 更多