我正在使用Nightwatch JS与Mocha跑步者一起运行我的e2e测试。 我想将HTML报告器与套件集成。
我正在尝试使用nightwatch-html-reporter
包。但据我所知,CLI命令存在问题(在Nightwatch文档中写的--reporter
在使用mocha时无效)。
我还将代码示例从nightwatch-html-reporter
复制到我的globals.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
};
答案 0 :(得分:0)
我认为它不能与nightwatch-html-reporter一起使用,因为它可能不是摩卡记者(但如果我错了,请纠正我)。
在将夜视与摩卡一起使用时,您想使用内置或自定义的摩卡记者。 您可以使用像 mochawesome 这样的自定义mocha html记者,但是您必须进行一些改动,并且由于我只对这些hack进行了少量测试,因此我不提供任何保证。
以下是使用 mochawesome 的说明
(经
测试
“ mocha”:“ ^ 5.2.0”,
“ mochawesome”:“ ^ 3.1.1”,
“ nightwatch”:“ ^ 0.9.21”)
假设您使用的是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
}
}
[mochawesome]报告HTML保存到C:\ projects \ myWebApp \ mochawesome-report \ mochawesome.html
该解决方案是脆弱且脆弱的,因为 nightwatch 带有其自己的摩卡版本。 安装 nightwatch 时,您将在node_modules中看到一个mocha-nightwatch文件夹。这是守夜人正在使用的摩卡咖啡。 但是 mochawesome 不使用mocha-nightwatch。如果您查看node_modules \ mochawsome \ dist \ mochawesome.js,您将看到如下代码行:
var Base = require('mocha/lib/reporters/base');
var Spec = require('mocha/lib/reporters/spec');
这意味着需要 mocha ,而不是 mocha-nightwatch 。 理想情况下,这些行应该是:require('mocha-nightwatch / ...)。 因此,请在所有需要修复的* .js文件中进行更改。 您也可以分叉 mochawesome 并使它们像这样;)
调试说明: 尝试在Mocha.prototype.reporter函数的node_modules \ mocha-nightwatch \ lib \ mocha.js中放置一些其他console.logs。这就是我弄清楚发生了什么的方式。
答案 1 :(得分:-5)
如果您使用Mocha,您可以随时使用mochawsome:https://www.npmjs.com/package/mochawesome 我自己没试过,但看起来很整洁。