0.3.2 • Published 5 years ago

screenshot-tester v0.3.2

Weekly downloads
5
License
MIT
Repository
github
Last release
5 years ago

screenshot-tester

Take screenshots (= snapshots) of desktop (node) apps (i.e. libui-node) to test for regressions.

An example report generated by screenshot-tester

Usage:

const test = require("screenshot-tester")();

(async function(){
    await test("my_example.js", "The Window Title");
})();

or for native apps:

const test = require("screenshot-tester")({raw: true});

(async function(){
    await test("app", "The Window Title");
})();

This will:

  • Run node my_example.js or app.
  • Take a screenshot of the window with the specified title.
  • Close the app.
  • Compare with or create a new reference screenshot.

A failed test will generate a diff file, hightlighting the differing areas in red:

─ outDir ('.')
  ├─ reference
  │  └─ my_example.js.png
  └─ tmp
     ├─ my_example.js.png
     └─ my_example.js_diff.png

Reference

const test = require("screenshot-tester")({
        outDir = ".",
        raw = false,
        interactive = false,
        delay = 0,
        accuracy = "0.01%",
        logger = require("screenshot-tester").defaultLogger
    });

async function test(file, title, {delay, raw, delta = 20}){};

function test.generateHTML(){};

async function test.pushToServer(host, repoId, issue, onlyFailed, osAppend) {};

Parameters

require("screenshot-tester")(...)

  • outDir: Optional - The folder in which the screenshots will be saved (see above).
  • raw: Optional - Set to true to run a binary instead of a node script. It is applied to all following test() calls.
  • interactive: Optional - Whether to prompt the user if the reference image should be updated if a test failed.
  • delay: Optional - Additional delay after starting the application (in ms). It is applied to all following test() calls.
  • accuracy: Optional - The threshold (500 or "500" => 500px, "0.01%" => 0.01%)
  • logger: Optional - A function to call for logging: function(type, file, error){}. Types: PASSED, FAILED, MISSING, ERROR, REPORT, OS, RETRY, PUSH

test(...)

  • file: The node script/binary to test (or an array to pass arguments).
  • title: The title of the window to be captured.
  • delay: Optional - As above, but only for this call.
  • raw: Optional - As above, but only for this call.
  • delta: Optional - How insensitive the color comparison is.
  • accuracy: Optional - As above, but only for this call.

test.generateHTML()

This will generate a HTML report (see example image) at ${outDir}/report.html.

test.pushToServer(...)

Send the result this test to a screenshot-tester-server instance.

  • host: The domain of the server (e.g. https://example.com)
  • repoId: The GitHub repo of the current pull request(e.g. owner/repo-name)
  • issue: The PR number (e.g. 2)
  • onlyFailed: Whether to push only failed tests
  • osAppend: String to append to the reported OS

Requirements

  • macOS: Python 3 and pip install click pyobjc-framework-Quartz
  • Linux: ImageMagick

Bundled projects

0.3.2

5 years ago

0.3.1

5 years ago

0.3.0

6 years ago

0.2.0

6 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago