npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

glace-js

v2.5.9

Published

GlaceJS is functional testing framework based on mochajs

Readme

Glace (fr. glacé — ice, frozen) is a cold drink based on coffee with addition of ice cream.

glace-js is a nodejs quick-start testing framework for complex scenarios touching UI and API cases. It's based on glace-core and extended with plugins:

Killer features

Installation

  • Be sure you have next software installed:

    • java for local selenium server;
    • chrome browser for web tests (or any selenium supported browser);
    • imagemagick [unix only] for images processing (on windows it will be installed together with framework);
    • avconv or ffmpeg [unix only] for video processing (on windows ffmpeg will be installed together with framework);
    • compiler for native nodejs modules (on windows it can be installed with npm i -g windows-build-tools);
  • For usage call npm:

npm i glace-js
  • For development:
git clone https://github.com/glacejs/glace-js.git
cd glace-js
npm i

Quick start

Passed test to launch browser and open web page.

  • Be sure that glace command is in $PATH env variable. Or add it:
PATH=$PATH:./node_modules/glace-js/bin
  • Save next test case to file first-test.js:
"use strict";

test("It should launch browser and open web page", () => {
    const url = "https://ya.ru";

    chunk(`Open url "${url}"`, async () => {
        await $.openUrl(url);
    });
});
  • Call command to launch test:
glace first-test.js --web
  • Enjoy result:
suite: Session 2017-10-11 12:56:51

test: It should launch browser and open web page
    ✓ chunk: Open url "https://ya.ru"

✓ 1 passed test
1 executed chunk

Summary tests time is 0.664 sec

---------------------------------
Local report is /home/user/report
  • Save next test case to file failed-test.js:
"use strict";

test("It should launch browser and open web page", () => {
    const url = "https://www.ya.ru";

    chunk(`Open url "${url}"`, async () => {
        await $.openUrl(url);
    });
});
  • Call command to launch test:
glace failed-test.js --web
  • Get failure:
suite: Session 2017-10-11 13:11:39

  test: It should launch browser and open web page
    ✖ chunk: Open url "https://www.ya.ru"

  ✖ 1 failed test
  1 executed chunk

  Summary tests time is 1m 0.6s

TEST FAILURES:

test: It should launch browser and open web page

Open url "https://www.ya.ru"
message: Browser didn't navigate to https://www.ya.ru during 60000 ms
stack: Error: Browser didn't navigate to https://www.ya.ru during 60000 ms
    at new WaitUntilTimeoutError (node_modules/webdriverio/build/lib/utils/ErrorHandler.js:149:12)
    at /home/user/node_modules/webdriverio/build/lib/commands/waitUntil.js:29:19
    at <anonymous>

---------------------------------
Local report is /home/user/report

More examples

  • See glace-core e2e tests in order to explore basic examples.
  • See glace-js e2e tests in order to explore plugin examples.

CLI options

Arguments

  • --config [path], -c - Path to JSON file with CLI arguments. Default is cwd/config.json (if it exists).

Note! All options below may be set via .json file (see option --config above).

Log

  • --stdout-log - Print log messages to stdout.
  • --log [path] - Path to log file. Default is cwd/glace.log.
  • --log-level [level] - Log level. Default is debug.

Core

  • --user-config [path] - Path to JS file with configuration which will be merged with override default configuration. Default is cwd/config.js (if it exists).
  • --session-name [name] - Tests run session name. Default value includes word session and datetime.
  • --grep <pattern>, -g - Filter tests by name or name chunk (by mocha).
  • --include <sequence> - Sequence of test name chunks separated by | in order to choose tests for run.
  • --exclude <sequence> - Sequence of test name chunks separated by | in order to exclude tests from run.
  • --precise - Precise tests inclusion or exclusion (not substring pattern).
  • --report [path] - Path to reports folder. Default is cwd/report.
  • --dont-clear-report - Don't clear previous report on tests run.
  • --dont-check-names - Don't check test names uniqueness (usually useful in unit testing).
  • --failed-tests-path [path] - Path to save failed tests in JSON format. Default is cwd/report/failed-tests.json.
  • --root-conftest <path> - Path to root conftest.js which will be loaded before all.
  • --languages <sequence> - List of tested languages separated with comma.
  • --retry [times] - Number of times to retry failed test. Default is 0.
  • --chunk-retry [times] - Number of times to retry failed chunk. Default is 0.
  • --chunk-timeout [sec] - Time to execute chunk or hook, sec. Default is 180.
  • --uncaught [type] - Strategy to process uncaught exceptions. Default value is log. Supported values are log, fail, mocha. See details in https://glacejs.github.io/glace-core.
  • --kill-procs <sequence> - List of process names separated with comma, which will be killed before tests run.
  • --debug-on-fail - Enter to interactive debug mode on step failure. Incompatible with --slaves option.
  • --exit-on-fail - Finish test run on first failure.
  • --dots - Print dots instead of test & chunk names.
  • --errors-now - Print error message immediately when it happened.
  • --deep-errors - Print deep objects structure in error message.
  • --interactive, -i - Launch interactive mode to execute steps manually in terminal. Incompatible with --slaves option.
  • --slaves <number|auto> - Split tests by slaves and execute them in separated processes in parallel. If it is auto, slaves amount will be equal to process cores amount.

Plugins

  • --list-plugins - List installed plugins and exit.
  • --plugins-dir [path] - Path to custom plugins folder. By default it searches plugins inside folder, where glace-core is installed.
  • --disable-default-plugins - Disable default plugins.

xUnit

  • --xunit - Activate xUnit reporter.
  • --xunit-path [path] - Path to xUnit report. Default is cwd/report/xunit.xml.
  • --xunit-suite-name [name] - Tests suite name in xUnit report. By default it's the same as session name.

Allure

  • --allure - Activate Allure reporter.
  • --allure-dir [path] - Path to allure reports folder. Default is cwd/report/allure.

TestRail

  • --testrail - Activate testrail reporter.
  • --testrail-host <host> - TestRail host.
  • --testrail-user <user> - TestRail username or email.
  • --testrail-token <token> - TestRail token.
  • --testrail-project-id <id> - TestRail project id.
  • --testrail-suite-id <id> - TestRail suite id.
  • --testrail-run-name <name> - TestRail run name.
  • --testrail-run-desc <description> - TestRail run description.

Tools

  • --testrail-check - Check TestRail cases consistency with implemented tests.
  • --list-steps [filter] - List available steps and exit.
  • --list-tests [filter] - List collected tests and exit.
  • --list-fixtures [filter] - List available fixtures and exit.

Image

  • --screenshot-on-fail - Capture screenshot on chunk fail.

Proxy

  • --http-proxy - Use http proxy.
  • --http-proxy-port [number] - Port for http proxy. Default is random. Incompatible with --slaves option.
  • --global-proxy - Use transparent global proxy.
  • --global-proxy-port [number] - Port for transparent global proxy. Default is random. Incompatible with --slaves option.
  • --cache - Enable middleware to cache proxy responses to disk.
  • --existing-cache - Use existing cache if it exists.
  • --cache-folder [folder] - Folder to put cached server responses. Default is cwd/report/.proxy-cache.
  • --speed <value> - Proxy speed, kb/s.
  • --install-certificate - Install global proxy certificate as trusted. Requires administrator permissions.
  • --ssl-ca-dir [folder] - Folder to put generated self-signed SSL certificates. Default is cwd/report/.certificats.
  • --reconnect [number] - Number of proxy reconnects on request error. Default is 2.

Test-gen

  • --gen-steps-filter <chunk> - Chunk of step name to filter tests.
  • --gen-steps-uniq [number] - Number of steps in unique sequence to filter tests. Default is unlimited.
  • --gen-steps-limit [number] - Maximum amount of steps per test. Default is unlimited.
  • --gen-steps-usage <number> - Number of steps usage in test case.
  • --gen-steps-files <sequence> - Space-separated sequence of paths to steps file (yaml or json format). As alternate to specify path to steps file in plugin mode.
  • --gen-tests-limit [number] - Maximum amount of generated tests per iteration. Default is 1000000.
  • --gen-tests-max <number> - Maximum amount of final tests.
  • --gen-tests-files <sequence> - Space-separated sequence of paths to files with pregenerated tests (yaml or json format).
  • --gen-tests-only - Flag to exclude other found tests and launch only generated tests in plugin mode.
  • --gen-tests-shuffle - Shuffle tests during generating. Provides more steps sequence randomization, but tests will be different in generating runs.
  • --gen-load-train <path> - Path to file with pretrained model, which will be loaded before generating.
  • --gen-train-before <path> - Path to file with tests for training before generating.
  • --gen-names-only - Flag to print only step names.

Video

  • --video - Capture video of executed tests. Video will be removed if test is passed.
  • --video-save - Capture video of executed tests. Video will be saved even if test is passed.

Selenium

  • --web - Flag to launch tests in browser.
  • --web-url <URL> - Web URL which will be used for web tests.
  • --web-resolution <widthxheight> - Browser viewport size (pc platform only).
  • --selenium-address <host:port> - Connect to launched selenium server with this address.
  • --platform [type] - Specify platform type where tests will be executed. Default is pc. Supported values are pc, android, ios.
  • --browser <name> - Name of browser where web tests will be executed. Default value is platform specific.

Appium

  • --device <name> - Mobile device name.
  • --os-version <value> - Mobile operating system version.
  • --ios-engine <name> - iOS automation engine name.
  • --udid <value> - Mobile device UDID.

Chrome

  • --chrome-incognito - Launch chrome in incognito mode.
  • --chrome-headless - Launch chrome in headless mode.
  • --chrome-options - Provide space-separated chrome options with key=value style.

Virtual display

  • --xvfb [<width>x<height>] - Use xvfb for headless testing.

Common

  • --version - Show version number.
  • -h, --help - Show help.