What is @cypress/xvfb?
@cypress/xvfb is an npm package that allows you to run Cypress tests in a virtual framebuffer (Xvfb). This is particularly useful for running tests in environments without a graphical user interface, such as CI/CD pipelines.
What are @cypress/xvfb's main functionalities?
Running Cypress in Xvfb
This feature allows you to start an Xvfb session and run Cypress tests within it. The code sample demonstrates how to start Xvfb, run Cypress tests, and then stop Xvfb.
const Xvfb = require('@cypress/xvfb');
const xvfb = new Xvfb();
xvfb.start((err) => {
if (err) console.error(err)
else {
// Run Cypress tests here
const cypress = require('cypress');
cypress.run().then((results) => {
console.log(results);
xvfb.stop();
});
}
});
Other packages similar to @cypress/xvfb
xvfb-maybe
xvfb-maybe is a utility that conditionally runs a command in a virtual framebuffer (Xvfb). It is similar to @cypress/xvfb but is more general-purpose and can be used with any command, not just Cypress.
@cypress/xvfb
easily start and stop an X Virtual Frame Buffer from your node apps.
Usage
var Xvfb = require('xvfb');
var options = {};
var xvfb = new Xvfb(options);
xvfb.start(function(err, xvfbProcess) {
xvfb.stop(function(err) {
});
});
The Xvfb constructor takes four options:
displayNum
- the X display to use, defaults to the lowest unused display number >= 99 if reuse
is false or 99 if reuse
is true.reuse
- whether to reuse an existing Xvfb instance if it already exists on the X display referenced by displayNum.timeout
- number of milliseconds to wait when starting Xvfb before assuming it failed to start, defaults to 2000.silent
- don't pipe Xvfb stderr to the process's stderr.xvfb_args
- Extra arguments to pass to Xvfb
.onStderrData
- Function to receive stderr
output
Debugging
Run with DEBUG=xvfb
environment variable to see debug messages. If you want
to see log messages from the Xvfb process itself, use DEBUG=xvfb,xvfb-process
.
Thanks to
Forked from node-xvfb
both of which served as inspiration for this package.