如何在将守夜人与摩卡一起使用时生成HTML报告



我正在使用Nightwatch JS使用Mocha运行器运行e2e测试。 我想将HTML报告器与套件集成。

我正在尝试使用nightwatch-html-reporter包。但据我了解,CLI 命令存在问题(它写在 Nightwatch 文档中,使用摩卡时--reporter不起作用(。

我还将代码示例从nightwatch-html-reporter复制到我的全局变量.js但它似乎也不起作用。

测试运行,但任何地方都没有输出。

这是我的文件夹结构:

project
src
spec
e2e
globals
globals.js
tests
smoke
testFile.js
nightwatch.conf.js

这是我的 conf 文件:

const seleniumServer = require('selenium-server-standalone-jar');
const chromeDriver = require('chromedriver');
module.exports = {
src_folders: ['src/spec/e2e/tests'],
output_folder: 'report',
page_objects_path: [
'src/spec/e2e/pageObjects'
],
globals_path: 'src/spec/e2e/globals/globals.js',
custom_commands_path: 'src/spec/e2e/customCommands',
selenium: {
start_process: true,
server_path: seleniumServer.path,
host: '127.0.0.1',
port: 4444,
cli_args: {
'webdriver.chrome.driver': chromeDriver.path
}
},
test_runner: {
type: 'mocha',
options: {
ui: 'bdd',
reporter: 'list'
}
},
test_settings: {
default: {
launch_url: 'http://URL',
silent: true,
desiredCapabilities: {
browserName: 'chrome',
javascriptEnabled: true,
acceptSslCerts: true,
chromeOptions: {
args: [
"--no-sandbox",
"start-fullscreen"
]
}
}
}
}
};

这是我global.js文件:

var HtmlReporter = require('nightwatch-html-reporter');
var reporter = new HtmlReporter({
openBrowser: true,
reportsDirectory: __dirname + '/reports'
});
module.exports = {
reporter: reporter.fn
};

我认为它不适用于夜巡-html-reporter,因为它可能不是摩卡记者(如果我错了,请纠正我(。

您希望在将夜巡与摩卡一起使用时使用内置或自定义摩卡记者。 您可以使用像mochawesome这样的自定义摩卡html报告器,但您必须进行一些黑客攻击,我不提供任何保证,因为我只是轻轻地测试了这些黑客。

以下是使用mochawesome的说明 (使用
"摩卡"测试:"^5.2.0", "mochawesome": "^3.1.1", "夜巡":"^0.9.21"(

  1. npm install mochawesome
  2. 修改 mochawesome node_modules\mochawesome *.js 文件以要求摩卡夜巡而不是摩卡。(请参阅答案末尾的说明/解释(
  3. 假设您使用的是 nightwatch.conf.js,请将测试运行程序配置为等效的

    test_runner : { type : "mocha", options : { ui : "bdd", reporter : require("mochawesome") // Please observe that you can pass a custom report constructor function here, not just reporter names } }

  4. 运行测试并观察您仍然会看到默认控制台报告器 (spec(,但在运行结束时您还会看到如下输出:

[mochawesome] Report HTML 保存到 C:\projects\myWebApp\mochawesome-report\mochawesome.html

  1. 打开 html 报告。

这个解决方案是黑客和脆弱的,因为守夜人带有它自己的摩卡版本。 当您安装夜巡时,您将在node_modules中看到摩卡夜巡文件夹。这是守夜人正在使用的摩卡咖啡。 然而,mochawesome不使用摩卡夜巡。如果你看一下node_modules\mochawsome\dist\mochawesome.js你会看到如下代码行:

var Base = require('mocha/lib/reporters/base');
var Spec = require('mocha/lib/reporters/spec'); 

这意味着需要摩卡,而不是摩卡夜巡。理想情况下,这些行应该是:require('mocha-nightwatch/...(。 因此,请在所有需要修复的 *.js 文件中更改它们。 你也可以叉出mochawesome,把它们做成那样;)

调试注意事项: 尝试在 Mocha.prototype.reporter 函数的 node_modules\mocha-nightwatch\lib\mocha.js 中放置一些额外的 console.logs。我就是这样弄清楚发生了什么。

如果你使用摩卡,你可以随时使用摩卡: https://www.npmjs.com/package/mochawesome 我自己没有尝试过,但它看起来很整洁。

最新更新