piapia
v1.1.0
Published
Just a wrapped tap, more fun.
Downloads
22
Maintainers
Readme
piapia
Just a wrapped tap, more fun.
Install
$ npm i -D piapia
Usage
package.json
{
"scripts": {
"test": "piapia test/index.js --coverage"
}
}
test/index.js
const {test} = require('piapia')
test.before(() => {
// some setup
})
test('description', async t => {
const result = await getResult()
t.is(result, true)
})
And then
$ npm test
t.end()
only in test.cb
Unlike tap
, we should only use t.end()
in test.cb
.
test.cb('test result with callback', t => {
getResult(result => {
t.is(result, true)
t.end()
})
})
t.end()
is NO MORE necessary for test
test('sync test', t => {
const result = getSyncResult()
t.is(result, true)
})
test('async test', async t => {
const result = await getAsyncResult()
t.is(result, true)
// t.end() here is useless and has no effect.
})
Lifecycles
piapia
supports FOUR lifecycle methods which are listed below according to the executing sequence:
test.before(fn)
test.beforeEach(fn)
test.afterEach(fn)
test.after(fn)
// Both sync and async functions are supported
test.before(async t => {
await startServer()
// We could do assertions inside lifecycle methods
t.is(await getServerPort(), 8080)
})
We could also define lifecycle methods by using setters:
test.before = async t => {
await startServer()
t.is(await getServerPort(), 8080)
}
Command Line
The command line interface of piapia
is exactly the same as tap
.
For example, if we want to use piapia
with codecov
$ npm i -D piapia codecov
package.json
{
"scripts": {
"test": "piapia test/index.js --coverage",
"posttest": "piapia --coverage-report=html && codecov"
}
}
License
MIT