Nightwatch environment for Vitest. Nightwatch.js is an integrated test framework for performing automated end-to-end testing on web applications and websites, across all major browsers.
npm install vitest-environment-nightwatch
Update your Vitest configuration in
vitest.config.js
:
{
environment: "nightwatch",
environmentOptions: {
nightwatch: {
// Nightwatch related options (all optional)
headless: true,
browserName: 'chrome',
baseUrl: '',
verbose: false,
output: true,
env: null,
parallel: false,
devtools: false,
debug: false,
autoStartSession: true,
persistGlobals: true,
configFile: './nightwatch.conf.js',
globals: {},
webdriver: {},
timeout: null,
enableGlobalApis: false,
alwaysAsync: true,
desiredCapabilities: {},
async setup(browser) {},
async teardown(browser) {},
}
},
...
}
Edit your tsconfig.json
to include vitest-environment-nightwatch types for the
vitest config.
{
"compilerOptions": {
"types": ["vitest-environment-nightwatch/types"]
}
}
Name | Type | Description | Default |
---|---|---|---|
headless |
Boolean | Run Nightwatch in headless mode (available in Firefox, Chrome, Edge) | true |
browserName |
String | Browser name to use; available options are: chrome , firefox , edge , safari |
none |
baseUrl |
String | The base url to use for the when using .navigateTo() with relative urls. When doing component testing it needs to be set to the url running the Vite dev server. |
http://localhost:3000 |
verbose |
Boolean | Enable complete Nightwatch http logs. | false |
output |
Boolean | Show Nightwatch output. | true |
env |
String | Nightwatch test environment to use, from nightwatch.conf.js . Learn more about test environments in the Nightwatch docs. |
none |
parallel |
Boolean | Set this to true when running tests in parallel | false |
devtools |
Boolean | Chrome only: automatically open the chrome devtools | false |
debug |
Boolean | Component testing only: pause the test execution after rendering the component | false |
autoStartSession |
Boolean | Start the Nightwatch session | |
automatically. If this is disabled, you'll need to call client.launchBrowser() in your tests. |
true |
||
persistGlobals |
Boolean | Persist the same globals object between runs or have a (deep) copy of it per each test. Learn more about test globals in the Nightwatch docs. | true |
configFile |
String | The Nightwatch config file to use. A config file will be auto-generated by default, but this allows you to change that. Learn more about the Nightwatch config in the Nightwatch docs. | ./nightwatch.conf.js |
globals |
Object | A list of globals to be used in Nightwatch. Globals are available on browser.globals . Learn more about the Nightwatch test globals in the Nightwatch docs. |
none |
webdriver |
Object | A list of Webdriver related settings to configure the Nightwatch Webdriver service. Learn more about the Nightwatch webdriver settings in the Nightwatch docs. | none |
timeout |
Number | Set the global timeout for assertion retries before an assertion fails. | 5000 |
enableGlobalApis |
Boolean | The Nightwatch global APIs (element(), expect()) are disable by default. | false |
desiredCapabilities |
Object | Define custom Selenium capabilities for the current session. Learn more about the specific browser driver that it is being used on the Nightwatch docs. | none |
setup() |
Function | Additional setup hook to be executed after Nightwatch has been started. | none |
teardown() |
Function | Additional teardown hook to be executed with the Nightwatch api object. | none |
The Nightwatch browser
API object. Created with
global.client.launchBrowser
.
The Vitest environment used the Nightwatch programmatic API to create the Nightwatch instance and export the browser API.
Available properties/methods:
.element(<locator>)
- use the Nightwatch .element() API to locate elements in the page;.updateCapabilities({ capabilities })
- used whenautoStartSession
is off in order to update the capabilities at run-time;.launchBrowser()
- used whenautoStartSession
is off in order to start the session and open the browser;.settings
- the Nightwatch settings object;.nightwatch_client
- the Nightwatch (internal) instance.
MIT