ui5-middleware-code-coverage
v3.0.0
Published
A code coverage instrumenter for UI5-tooling using NYC
Downloads
53
Maintainers
Readme
ui5-middleware-code-coverage
**Deprecated, check out ui5-middleware-code-coverage-advanced instead A code coverage instrumenter for UI5-tooling
Middleware for ui5-server, enabling code coverage.
This is a wrapper for the NYC-Middleware.
Install
npm install ui5-middleware-code-coverage --save-dev
Configuration options (in $yourapp/ui5.yaml
)
- baseUri:
string
the baseUri to proxy
Usage
- Define the dependency in
$yourapp/package.json
:
"devDependencies": {
"ui5-middleware-code-coverage": "*"
},
"ui5": {
"dependencies": [
"ui5-middleware-code-coverage"
]
}
As the devDependencies are not recognized by the UI5 tooling, they need to be listed in the
ui5 > dependencies
array. In addition, once using theui5 > dependencies
array you need to list all UI5 tooling relevant dependencies.
- configure it in
$yourapp/ui5.yaml
:
server:
customMiddleware:
- name: ui5-middleware-code-coverage
afterMiddleware: compression
mountPath: /
configuration:
path: "webapp"
enabled: "false"
exclude: "test,resources"
The path is which folder you want to cover. The enabled is whether you want to switch the coverage on or off. Handy when you are doing development as the instrumented code is a bit messy.
The exclude is if you want to exclude any folders from the code coverage, such as the test folder. This feature is optional
How it works
The middleware will launch another express nodejs server that will act as a collector and instrumenter for your code. The path in the yaml configuration tells the package which folder and subsequent JS files needs to be instrumented for code coverage.
The coverage is stored in your browser session in the window.__coverage__
object. You can use this plugin together with Selenium and after execution of your scripts submit the code coverage or you can simply use it manually and after your testing submit the coverage to the server using below snippet.
$.ajax({
type: "POST",
url: 'http://localhost:3000/coverage/client',
data: JSON.stringify(window.__coverage__),
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
});
The Coverage service
The above snippet adds the following endpoints to your app under /coverage