Use the html-reporter
plugin to get an html-report on the tests run.
See full documentation in various languages here:
Html reporter for Testplane (ex-hermione)
License: MIT License
Добрый день, спасибо за вашу работу. Удобный инструмент.
Подскажите, как можно сбросить результаты всех тестов, чтобы привести html-reporter к начальному состоянию (когда ни одного теста не было запущенно)
I'm trying to test #100 by pulling that commit and running 'npm install' in the node_modules/html-reporter folder to rebuild the assets.
However I get a webpack error
You may need an appropriate loader to handle this file type.
|
| ReactDOM.render(
| <Provider store={store}>
| <Gui/>
| </Provider>,
@ multi ./gui.js ./styles.css ./gui.css
ERROR in ./index.js
Module parse failed: Unexpected token (12:4)
You may need an appropriate loader to handle this file type.
|
| ReactDOM.render(
| <Provider store={store}>
| <Report/>
| </Provider>,
@ multi ./index.js ./styles.css
Which would indicate a missing loader or wrong webpack config test for React.
I tried the same on the master version in the NPM regestiry and it does the same thing. As does running `npm publish` or running webpack from CLI with either of the dev or prod configs.
I have ensured I have the .babelrc & .eslintrc.js as well.
I am totally willing to be trying to run like this but I'm at a loss as to what is going on.
Could you help please?
Thanks.
Steps to reproduce:
some(test)
Привет!
Репорт обновляется на пустую страницу при открытии теста.
Код для воспроизведения:
it('test', function() {
return this.browser
.setMeta('foo', [{url: 'https://yandex.by/'}])
.getMeta('foo')
.then(([foo]) => this.browser.url(foo.url));
});
Plugins:
plugins: {
'html-reporter/hermione': {
enabled: true,
defaultView: 'all',
path: 'e2e-report'
},
...
}
npx envinfo
:
System: OS: macOS 10.14.5 CPU: (8) x64 Intel(R) Core(TM) i5-8259U CPU @ 2.30GHz Memory: 956.82 MB / 16.00 GB Shell: 3.2.57 - /bin/bash Binaries: Node: 10.15.2 - ~/.nvm/versions/node/v10.15.2/bin/node npm: 6.9.0 - ~/.nvm/versions/node/v10.15.2/bin/npm Utilities: Make: 3.81 - /usr/bin/make GCC: 10.14. - /usr/bin/gcc Git: 2.21.0 - /usr/local/bin/git Databases: SQLite: 3.24.0 - /usr/bin/sqlite3 Browsers: Firefox Developer Edition: 68.0 Safari: 12.1.1
Здравствуйте подскажите как настроить название папок чтобы соответствовали названию теста?
http://prntscr.com/r80gzn
Hello, tell me how to configure the name of the folders to match the name of the test?
Здравствуйте подскажите как настроить название папок чтобы соответствовали названию теста?
http://prntscr.com/r80gzn
Hello, tell me how to configure the name of the folders to match the name of the test?
http://prntscr.com/r80gzn
Not sure why unknown options crashing the whole process.
Probably it should just warn about them.
This behaviour especially annoying on various updates of plugins made by colleagues.
gemini --version
:5.0.0-alpha.6
.gemini.yml
file:system:
plugins:
html-reporter:
enabled: true
path: gemini-report
errorsOnly: false
Result:
Critical error:
UnknownKeysError: Unknown options: root.errorsOnly
exited
Expected:
Warning! Check this:
UnknownKeysError: Unknown options: root.errorsOnly
... continuing execution
Привет!
При перезагрузке страницы теряются состояния фильтров. Довольно много времени тратится на покликать на кнопки и вписать/вставить название теста, чтобы селективно запустить тест.
TypeError: "k.shouldSuiteBeShown is not a function"
f http://localhost:8000/gui.min.js:60
value http://localhost:8000/gui.min.js:60
Pn http://localhost:8000/gui.min.js:31
Nn http://localhost:8000/gui.min.js:31
Mn http://localhost:8000/gui.min.js:31
Xn http://localhost:8000/gui.min.js:31
Qn http://localhost:8000/gui.min.js:31
vr http://localhost:8000/gui.min.js:31
dr http://localhost:8000/gui.min.js:31
Or http://localhost:8000/gui.min.js:31
ze http://localhost:8000/gui.min.js:31
Steps to reproduce:
plugins: {
'html-reporter/hermione': {}
}
node_modules/.bin/hermione gui
Hi,
after opening the index.html file from a recently generated gemini html-report I get the following errors, which can be reproduced in Chrome, IE, Edge and Firefox under Windows 10:
Chrome 70:
index.html:1 Access to resource at 'file:///C:/events' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
Firefox 62:
Firefox can’t establish a connection to the server at file:///events. report.min.js:39:116091
IE 11:
SCRIPT438: Object doesn't support property or method 'assign'. report.min.js (39,64507)
Edge:
SCRIPT16389: Unknown Error. report.min.js (38,59117)
The problem seems to be somehow related to the data.js file, because if I replace the existing data.js with one from an older html report (~1 month old) the report.min.js correctly loads the page.
I'm trying to use this. Out project was previously using the built in html reports from gemini but they removed them last week.
I have my gemini yml configured thus:
system:
plugins:
'html-reporter': {
enabled: true
}
I've tried running gemini test --reporter html gemini/tests/set1/alert.js
but get the followign error:
Error: Cannot find module 'html-reporter' or 'gemini-html-reporter'
html-reporter is installed in my node_modules. I'm sure I am missing something but its hard to say what as using the html reporter as a plugin to gemini seems pretty new.
Any direction to docs would be a big help.
As of version 2.0.0 the main
entry in package.json is missing and therefore the module can't be found when trying to import/require it.
Обновил версию до 9.7.0 и теперь отчет не работает:
1329:1 Uncaught Error: Module build failed: Error: ENOENT: no such file or directory, open '/Users/oldskytree/job/search-interfaces/html-reporter/lib/static/components/controls/browser-list.js'
at eval (1329:1:7)
at Object.<anonymous> (report.min.js:15751:1)
at __webpack_require__ (report.min.js:679:30)
at fn (report.min.js:89:20)
at eval (common-filters.js?d5f5:9:1)
at Object.<anonymous> (report.min.js:15715:1)
at __webpack_require__ (report.min.js:679:30)
at fn (report.min.js:89:20)
at eval (report-controls.js?13ce:4:1)
at Object.<anonymous> (report.min.js:17597:1)
In the README.md it says: "Also there is ability to override plugin parameters by CLI options or environment variables (see configparser)."
As html-reporter has a dash in its name, I am not sure how to convert the properties to kebab case.
Here is what I tried (to no avail)
gemini test --plugins-html-reporter-path override
gemini test --plugins-html-reporter-path=override
gemini test --plugins-htmlreporter-path override
Now repo
gemini-plugin
, html-report
But this report is compatible with hermione
too.
So it should be reflected in description and tags list.
Seems html-reporter doesn't work with nodejs16/npm8. There's an error while npm i
:
npm ERR! In file included from ../src/integer.cpp:1:
npm ERR! In file included from ../src/integer.hpp:3:
npm ERR! In file included from /Users/dfilatov/Library/Caches/node-gyp/16.13.0/include/node/node.h:63:
npm ERR! In file included from /Users/dfilatov/Library/Caches/node-gyp/16.13.0/include/node/v8.h:30:
npm ERR! /Users/dfilatov/Library/Caches/node-gyp/16.13.0/include/node/v8-internal.h:492:38: error: no template named 'remove_cv_t' in namespace 'std'; did you mean 'remove_cv'?
npm ERR! !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
npm ERR! ~~~~~^~~~~~~~~~~
npm ERR! remove_cv
npm ERR! /Library/Developer/CommandLineTools/usr/include/c++/v1/type_traits:660:50: note: 'remove_cv' declared here
npm ERR! template <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_cv
npm ERR! ^
npm ERR! 1 error generated.
npm ERR! make: *** [Release/obj.target/integer/src/integer.o] Error 1
Looks like the problem with integer
module which is used by better-sqlite3
.
Probably it makes sense to upgrade better-sqlite3
to version 7.
Does reporter have an option to output report in the single file?
Hermione log output:
Total: 846 Passed: 842 Failed: 1 Skipped: 3 Retries: 6
html-report incorrectly report "Failed: 0" when actually there are 1 failed test.
Failed test is not displayed in tree at all.
Json-report says 1 test failed, that is correct:
Hermione log contains Html-report error while loading png-image:
Html-reporter runtime error: NestedError: Can't load png file /place/db/www/login/.tests/hermione/screens/c546b0c/chrome/zapolnili_pole_dlya_zapreshchennogo_znacheniya.png
at exports.fromFile (/place/db/www/login/.tests/node_modules/looks-same/lib/png-image/index.js:33:15)
at async Promise.all (index 0)
at async Object.exports.readPair (/place/db/www/login/.tests/node_modules/looks-same/lib/utils.js:21:35)
Caused By: Error: Invalid file signature
at module.exports.Parser._parseSignature (/place/db/www/login/.tests/node_modules/pngjs/lib/parser.js:48:18)
at module.exports.ChunkStream._processRead (/place/db/www/login/.tests/node_modules/pngjs/lib/chunkstream.js:160:13)
at module.exports.ChunkStream._process (/place/db/www/login/.tests/node_modules/pngjs/lib/chunkstream.js:175:14)
at module.exports.ChunkStream.write (/place/db/www/login/.tests/node_modules/pngjs/lib/chunkstream.js:57:8)
at module.exports.ChunkStream.end (/place/db/www/login/.tests/node_modules/pngjs/lib/chunkstream.js:69:10)
at exports.PNG.PNG.end (/place/db/www/login/.tests/node_modules/pngjs/lib/png.js:100:16)
at exports.PNG.PNG.parse (/place/db/www/login/.tests/node_modules/pngjs/lib/png.js:90:8)
at /place/db/www/login/.tests/node_modules/looks-same/lib/png-image/index.js:12:13
at new Promise (<anonymous>)
at parseBuffer (/place/db/www/login/.tests/node_modules/looks-same/lib/png-image/index.js:10:12)
at Object.exports.fromBuffer (/place/db/www/login/.tests/node_modules/looks-same/lib/png-image/index.js:38:23)
at exports.fromFile (/place/db/www/login/.tests/node_modules/looks-same/lib/png-image/index.js:31:30)
at async Promise.all (index 0)
at async Object.exports.readPair (/place/db/www/login/.tests/node_modules/looks-same/lib/utils.js:21:35)
(node:106) PromiseRejectionHandledWarning: Promise rejection was handled asynchronously (rejection id: 1)
Tests FAILED !!!
So, when png-image load error, then failed test is not displayed in the report tree and total stats.
While installing html-reporter in node@22 environment, it crashes caused by better-sqlite@8 dependency.
Bumping better-sqlite to actual major 9 resolves installation issue.
Next compatibility issue was found in @gemini-testing/sql.js
while running package's tests: Html-reporter runtime error: Error: Cannot find module '@gemini-testing/sql.js/dist/sql-wasm.wasm'
. Maybe it will be enough to rebase your fork-package to solve compatibility issues.
html-reporter and node 22 compatibility
No response
No response
Hi! Good plugin!
but why html-reporter use fixed server port value?
Maybe this value would be much more convenient to take from the plugin settings in hermione.config
Hi,
I've upgarded "html-reporter" from "4.6.2" to "5.16.4".
How can I have Page Screenshot opened by default in report?
It was very convenient before.
gemini update
gemini test --grep "my suite"
Actual: data.js
contains only "my suite" results.
Expected: data.js
contains all results that are taken by the gemini update
and updated test results for 'my suite'.
It looks like the reusing of test results this already implemented in the gui
report builder https://github.com/gemini-testing/html-reporter/blob/master/lib/gui/tool-runner-factory/base-tool-runner.js#L56 but not in CLI reporting tool https://github.com/gemini-testing/html-reporter/blob/master/lib/report-builder-factory/report-builder.js . It would be nice if they shared the same implementation. Perhaps the reusing of results could be triggered by CLI argument --reuse
or something like that.
Favicon notification helps to understand when the test passed looking on the tab bar.
Hello,
After I runned the tests with gemini I tried to generate the html reporter.
I installed the reporter using npm and them add option in .gemini.js.
This is my file
module.exports = {
rootUrl: "https://yandex.com/",
windowSize: "1600x1080",
browsers: {
chrome: {
desiredCapabilities: {
browserName: "chrome"
}
}
},
system: {
plugins: {
"html-reporter/gemini": {
enabled: true,
path: "my/gemini-reports",
defaultView: "all",
baseHost: "https://yandex.com/"
}
}
}
};
When I run the command
html_reporter_path=/reporter gemini test gemini-test/header.js
I receive this error:
throw new Error(
Cannot find module '${pluginName}' or '${pluginNameWithPrefix}'
);
^Error: Cannot find module 'html-reporter/gemini' or 'gemini-html-reporter/gemini'
at module.exports (/Users/admin/.nvm/versions/node/v8.9.0/lib/node_modules/gemini/node_modules/plugins-loader/lib/require-plugin.js:24:23)
Thanks!
multipleTabs
field. It should also be supported in messier - https://nda.ya.ru/t/_Xt5xyAG3W2uFWThis is caused by backslashes in filepath, browser disinterprets them and makes bad url.
Report can be hacked by postprocessing, but we need solution for gui
const fs = require('fs'), data = require('..\\tmp\\hermione-html-report\\data.js');
function transform(item) {
if(Array.isArray(item)) {
return item.map(transform);
}
if(typeof item === 'object' && item !== null) {
if(typeof item.path === 'string') {
item.path = item.path.replace(/\\/g, '/');
}
return Object.fromEntries(Object.entries(item).map(([key, value]) => ([key, transform(value)])));
}
return item;
}
fs.writeFileSync('.\\tmp\\hermione-html-report\\data.js', `var data = ${JSON.stringify(transform(data))};try {module.exports = data;} catch (e) {}`);
Starting from html-reporter version 5.x.x, npm 8.18.0 (from node 16) hangs on npm i
command.
Running it in npm --verbose
mode shows cyclyc hangs on iteration of this part:
npm timing idealTree:node_modules/html-reporter Completed in 3ms
npm timing idealTree:node_modules/react Completed in 0ms
npm timing idealTree:node_modules/react-html-parser Completed in 1ms
npm timing idealTree:node_modules/htmlparser2 Completed in 2ms
npm timing idealTree:node_modules/domelementtype Completed in 0ms
npm timing idealTree:node_modules/domhandler Completed in 0ms
npm timing idealTree:node_modules/domutils Completed in 1ms
npm timing idealTree:node_modules/dom-serializer Completed in 1ms
npm timing idealTree:node_modules/entities Completed in 0ms
npm timing idealTree:node_modules/react-markdown Completed in 2ms
npm timing idealTree:node_modules/mdast-add-list-metadata Completed in 0ms
npm timing idealTree:node_modules/reapop Completed in 3ms
npm timing idealTree:node_modules/html-reporter Completed in 4ms
npm timing idealTree:node_modules/react Completed in 0ms
npm timing idealTree:node_modules/react-html-parser Completed in 1ms
npm timing idealTree:node_modules/htmlparser2 Completed in 3ms
npm timing idealTree:node_modules/domelementtype Completed in 0ms
npm timing idealTree:node_modules/domhandler Completed in 0ms
npm timing idealTree:node_modules/domutils Completed in 0ms
npm timing idealTree:node_modules/dom-serializer Completed in 1ms
npm timing idealTree:node_modules/entities Completed in 0ms
npm timing idealTree:node_modules/react-markdown Completed in 3ms
npm timing idealTree:node_modules/mdast-add-list-metadata Completed in 0ms
npm timing idealTree:node_modules/reapop Completed in 3ms
npm timing idealTree:node_modules/html-reporter Completed in 3ms
npm timing idealTree:node_modules/react Completed in 0ms
npm timing idealTree:node_modules/react-html-parser Completed in 0ms
npm timing idealTree:node_modules/htmlparser2 Completed in 3ms
npm timing idealTree:node_modules/domelementtype Completed in 0ms
npm timing idealTree:node_modules/domhandler Completed in 0ms
npm timing idealTree:node_modules/domutils Completed in 1ms
npm timing idealTree:node_modules/dom-serializer Completed in 1ms
npm timing idealTree:node_modules/entities Completed in 0ms
npm timing idealTree:node_modules/react-markdown Completed in 2ms
npm timing idealTree:node_modules/mdast-add-list-metadata Completed in 1ms
npm timing idealTree:node_modules/reapop Completed in 2ms
... and so on infinity ....
How to reproduce
npx hermione merge-reports hermione-reports/e2e-one hermione-reports/e2e-two hermione-reports/e2e-three -d hermione-reports/e2e
Error: ENOENT: no such file or directory, link './hermione-reports/e2e-one/images' -> './hermione-reports/e2e/images'
Включена опция ленивой загрузки картинок.
Страница прыгает, когда просматриваешь репорт снизу вверх. Как я понимаю, это происходит потому, что плейсхолдерам картинок не заданы размеры. По мере прокрутки страницы картинки подгружаются, увеличивая высоту страницы, сдвигая окно просмотра вверх.
Looks like it treats "gui" as a test path instead
% npx hermione gui
[20:22:09 GMT+1] Error: Cannot find files by specified paths: gui
It works OK in 9.15.0
I use configuration like in the documentation.
The problem is that images doesn't appear in html-reporter see attached picture.
I'm running gemini gui
module.exports = {
// ...
system: {
plugins: {
'html-reporter/gemini': {
enabled: true,
path: 'my/gemini-reports',
defaultView: 'all',
baseHost: 'test.com'
}
}
},
//...
}
In last versions, the image order in the HTML-report does not equals the order of assertView calls.
Version: 9.17.0
I tried to launch it in git-bash and powershell. No luck. Installing better-sqlite3
explicitly doesn't help either.
Config:
module.exports = {
sets: {
desktop: {
files: [
'./features/desktop/*.spec.js',
],
}
},
browsers: {
chrome: {
desiredCapabilities: {
browserName: 'chrome',
version: '80.0',
},
gridUrl: 'http://user:[email protected]:4444/wd/hub',
}
},
plugins: {
'html-reporter/hermione': {
enabled: false,
path: 'reports/hermione',
defaultView: 'all',
baseHost: 'https://test.app.local.net/',
scaleImages: false,
},
},
};
Stacktrace:
PS C:\lab\e2e2> yarn test gui
yarn run v1.22.4
$ hermione gui
Error: The specified module could not be found.
\\?\C:\lab\e2e2\node_modules\html-reporter\node_modules\better-sqlite3\build\better_sqlite3.node
at Object.Module._extensions..node (internal/modules/cjs/loader.js:1208:18)
at Module.load (internal/modules/cjs/loader.js:1002:32)
at Function.Module._load (internal/modules/cjs/loader.js:901:14)
at Module.require (internal/modules/cjs/loader.js:1044:19)
at require (internal/modules/cjs/helpers.js:77:18)
at Object.<anonymous> (C:\lab\e2e2\node_modules\html-reporter\node_modules\better-sqlite3\lib\database.js:5:21)
at Module._compile (internal/modules/cjs/loader.js:1158:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
at Module.load (internal/modules/cjs/loader.js:1002:32)
at Function.Module._load (internal/modules/cjs/loader.js:901:14)
at Module.require (internal/modules/cjs/loader.js:1044:19)
at require (internal/modules/cjs/helpers.js:77:18)
at Object.<anonymous> (C:\lab\e2e2\node_modules\html-reporter\node_modules\better-sqlite3\lib\index.js:2:18)
at Module._compile (internal/modules/cjs/loader.js:1158:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
at Module.load (internal/modules/cjs/loader.js:1002:32)
at Function.Module._load (internal/modules/cjs/loader.js:901:14)
at Module.require (internal/modules/cjs/loader.js:1044:19)
at require (internal/modules/cjs/helpers.js:77:18)
at Object.<anonymous> (C:\lab\e2e2\node_modules\html-reporter\lib\sqlite-adapter.js:5:18)
at Module._compile (internal/modules/cjs/loader.js:1158:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
PS C:\lab\e2e2>
Если в конфиге hermione изменить путь до отчета:
plugins: {
'html-reporter/hermione': {
path: 'tests/hermione/html-report',
},
}
То папка с отчетом создается, но при запуске hermione gui - страница не видит скриншоты.
При исправлении пути на path: 'tests/hermione/hermione-html-report' репорт нормально показывает и принимает скриншоты.
Every time I run gemini test
or gemini
update, I get this error:
Critical error:
ReferenceError: data is not defined
at Object.<anonymous> (/Users/.../gemini/gemini-reports/bundle.min.js:1:100215)
at Object.defineProperty.value (/Users/.../gemini/gemini-reports/bundle.min.js:1:100357)
at n (/Users/.../gemini/gemini-reports/bundle.min.js:1:163)
at Object.<anonymous> (/Users/.../gemini/gemini-reports/bundle.min.js:1:75605)
at n (/Users/.../gemini/gemini-reports/bundle.min.js:1:163)
at n (/Users/.../gemini/gemini-reports/bundle.min.js:1:513)
at Object.<anonymous> (/Users/.../gemini/gemini-reports/bundle.min.js:1:522)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.exports.requireWithNoCache (/Users/.../node_modules/gemini/lib/utils.js:5:12)
at _.forEach (/Users/.../node_modules/gemini/lib/test-reader.js:19:15)
at /Users/.../node_modules/lodash/lodash.js:4944:15
at baseForOwn (/Users/.../node_modules/lodash/lodash.js:3001:24)
at /Users/.../node_modules/lodash/lodash.js:4913:18
at Function.forEach (/Users/.../node_modules/lodash/lodash.js:9359:14)
at loadSuites (/Users/.../node_modules/gemini/lib/test-reader.js:15:7)
at SetsBuilder.create.useSets.useFiles.useBrowsers.build.then (/Users/.../node_modules/gemini/lib/test-reader.js:35:34)
But before I use html-reporter
, everything was fine.
Установил html-reporter на гермиону. После прохождения теста попытался открыть репорт и посмотреть инфо по тесту. Открылась пустая страница, при этом в консоли браузера падает ошибка
Invariant Violation: Minified React error #31; visit https://reactjs.org/docs/error-decoder.html?invariant=31&args[]=object%20with%20keys%20%7Burls%2C%20hubs%2C%20endUsers%2C%20adminUser%2C%20updateReports%2C%20deleteWhenDone%2C%20reportNamePostfix%2C%20fileNameForTestsData%2C%20studioComponentSecret%7D&args[]= for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
В чем может быть причина?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.