Comments (3)
When writing tests for Adonis, you always have to setup the application state before executing any tests. One option is to create an ace command and use it to run the tests. Example
'use strict'
const Command = use('Command')
const Helpers = use('Helpers')
const path = use('path')
const pify = use('pify')
const glob = pify(use('glob'))
const runner = new (use('japa/src/Runner'))()
const Ioc = use('adonis-fold').Ioc
class RunTest extends Command {
constructor () {
super()
this.baseDir = Helpers.basePath()
const test = runner.test.bind(runner)
test.group = runner.group.bind(runner)
Ioc.bind('test', () => {
return test
})
}
get signature () {
return 'test:run {--unit} {--functional} {--files=@value}'
}
get description () {
return 'Run the tests suite'
}
* _runTests (globPattern) {
const files = yield glob(globPattern)
files.forEach((file) => {
require(file)
})
}
* handle (args, options) {
let files = '/test/**/*.spec.js'
// Going over user arguments
if (options.unit) {
files = 'test/unit/*.spec.js'
} else if (options.functional) {
files = 'test/functional/*.spec.js'
} else if (options.files) {
files = 'test/functional/*.spec.js'
}
try {
yield this._runTests(path.join(this.baseDir, files))
yield runner.run()
} catch (e) {
// console.log(e)
}
}
}
module.exports = RunTest
And then you can run tests by saying ./ace test:run
Also you have to make use of test
by importing it from the IoC container over requiring japa. So the test file will be like this
const test = use('test')
test('2 +2', (assert) => {
assert.equal(2 + 2, 4)
})
from core.
this points me into the right direction, thanks
from core.
Also one should use https://github.com/adonisjs/adonis-vow now
from core.
Related Issues (20)
- Can group initialization be asynchronous? HOT 5
- Running multiple files does not work HOT 1
- Custom order for running tests HOT 6
- Add Suite layer to Refiner HOT 2
- Change Private methods and properties to Protected to use Japa classes as Base classes HOT 2
- Broken documentation link HOT 1
- Cannot Access Assert from JapaFile.ts HOT 1
- Skip test by default when calling ".skip()" without parameter HOT 2
- Add the ability to use Dataset property in the title HOT 2
- Asynchronous datasets / datasets not supported anymore? Multiple chained asynchronous test dependencies HOT 7
- Can't start adonis server when migrated to @japa/runner HOT 1
- Can't start tests on windows HOT 1
- OpenAPI HTTP Testing in Adonis with Japa HOT 1
- Match all tags in filter HOT 10
- Where to post some questions ? HOT 2
- Error in group functions is swallowed and not shown HOT 4
- Filter by group title also executes "root" tests HOT 5
- How get dynamic title for each test with array strings in dataset? HOT 1
- "Packages installation failed" Error on Windows Server 2019 and Windows 11 HOT 3
- [Feature suggestions] Mock Functions HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from core.