Torment
Perceptual diffing suite
built on Nightmare by Segment
Getting Started
You can look at test/index.js
as an example for how to use Torment. To run the example test just run make test
after cloning this repo.
Reference
Torment is built on Nightmare and used in combination with Mocha (though other test frameworks can be used). You'll also need to read and use both of those library's APIs to use Torment effectively.
Niffy
This project was forked fromTorment(basehost, testhost[, options])
To create a new Torment differ:
let torment = basehost testhost options testsFunction;
basehost
is the url that is assumed "good"testhost
is the url that you are comparing to the baseoptions
aside from the few specific Torment options, all nightmare options can be used. They can be seen here in the Nightmare docspngPath
is the folder the screenshots will be saved.threshold
is the maximum percentage difference for a passing testtargets
a list of resolutions to test
testsFunction
Torment supplies these defaults:
pngPath : './.torment`, threshold : 0.2, targets : { default : [ 1400, 1000 ] }}
Usage
Whatever tests you want to run at each resolution must be wrapped in a function and passed as the testsFunction
parameter of the Torment constructor.
Mocha example:
'https://google.com' 'https://google.co.jp' targets: small: 100200 big: 10002000 { const label width height = size; ;
(see test/index.js
for a full example)
.test(url[, fn])
This method instructs torment to go to a url
(and optionally take additional actions like clicking, typing or checkboxing via the fn
argument), and test basehost
vs. testhost
screenshots for pixel differences, and output the diff-highlight image. Typically you'll use .test(url, fn)
in the body of a mocha test, like this:
;
.goto(url[, fn])
This method instructs torment to go to a url
and optionally take additional actions like clicking, typing or checkboxing via the fn
argument. Typically you'll use .goto(url, fn)
in the before
method of a mocha test suite, like this:
;
.end()
This method closes the underlying Nightmare instance (e.g. freeing up memory). Typically you'll use .end()
in the after
method of a mocha test suite, like this:
;
Contributing
Development of Torment requires node 7
or higher.
Torment's branch structure goes as follows:
-
master
- latest stable git repo. -
dev
- current development branch. This is where feature branches should branch from. -
issue branches - these branches come from
dev
and are branched for a specific feature or bug, then get merged back intodev
. The branch names should follow the structureGH-(issue number)-(name)
We gladly accept and review any pull-requests into the current dev
branch. Feel free! ❤️
Otherwise, if you just want to talk, we are very easy to get a hold of!
- Email: mouse@knoblau.ch
- Git: https://github.com/mousemke/torment/
This project adheres to the Contributor Covenant. By participating, you are expected to honor this code.