WebDriver.io 没有控制台输出

Posted

技术标签:

【中文标题】WebDriver.io 没有控制台输出【英文标题】:WebDriver.io no console output 【发布时间】:2018-01-20 23:58:29 【问题描述】:

我正在使用以下堆栈来运行几个测试:

NodeJs
Selenium standalone
geckodriver thought I use chrome
webdriver.io
mocha 
chai

所以毕竟我的 first_test.js 是:

describe ('Website url test ', () => 
  it('should have a title ', () => 
    browser.call((done) => 
      browser.url('http://webdriver.io');
      var title = browser.getTitle();
      expect(title).to.be.equal('WebdriverIO - WebDriver bindings for Node.js')
      done();
    )
  )

并且控制台中的输出是:控制台输出不正确

但通过测试也应该是这样的:正确的控制台输出

我应该更改 Mocha 配置中的某些内容,以便通过测试产生相同的光学结果吗?

【问题讨论】:

【参考方案1】:

这种行为是由选择的记者引起的(在我的例子中是 dot)。

我更改为 spec,现在我有一个非常详细的输出。

【讨论】:

【参考方案2】:

WebdriverIO 支持多种记者:

Dot:这是 WDIO 的默认报告器,它是一个轻量级控制台报告器,可输出绿色或红色点 ('.')通过,分别失败的测试用例;

Spec:它只是在控制台中输出您之前运行的测试用例的分步细分。此输出将严格驻留在控制台中,除非您想通过 wdio.conf.js 文件中的 logOutput: './<yourLogFolderPath>/' 属性来管道传输整个控制台日志堆栈;

Json:生成您之前运行的测试的.json 报告。它非常适合那些已经拥有测试结果仪表板的人,他们可以在其中分析他们的回归结果(通过测试、失败测试、运行时等),并且只需要从某个地方解析数据。您可以通过以下方式配置您希望生成.json 报告的路径:

reporterOptions: outputDir: './<yourLogFolderPath>'

注意: Json 报告器将使用WDIO-&lt;timestamp&gt;.json 报告填充给定的路径。如果您想通过管道将.json 传递给其他软件进行解析,那么您需要进入库内部并更改命名约定,以便始终在同一个文件中获得结果,而不是动态生成的文件。

Allure:Allure 是最好的记者选择之一,特别是如果您没有测试结果仪表板,因为它会为您生成一个。您可以查看 this 答案以获取分步细分;

!!!但是作为最佳实践,任何记者都不应该超过将logLevelwdio.conf.js 文件中)设置为 的重要性调试 (logLevel: 'debug') 用于wdio-v5,或详细 (logLevel: 'verbose') 用于wdio-v4

调试时(我认为这是报告的原因),以最快的方式找到问题的根源至关重要,那就是查看REST 测试在运行时进行的调用。

希望这可以为从 WebdriverIO 开始的人们提供更清晰的概述,以及需要更多信息来了解哪些报告器最适合什么场景/情况。

干杯!

【讨论】:

以上是关于WebDriver.io 没有控制台输出的主要内容,如果未能解决你的问题,请参考以下文章

新人求问,sublime控制台输入后为啥没有输出

jmeter 控制台有summary,输出文件没有

Eclipse Juno 中没有控制台输出

Xcode 11 / iOS 13 没有控制台输出

Flutter IntelliJ 插件中没有控制台输出?

GitBash没有输出到控制台