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 🙏

© 2024 – Pkg Stats / Ryan Hefner

testplane

v8.21.1

Published

Tests framework based on mocha and wdio

Downloads

6,275

Readme


Testplane (ex-Hermione) is a battle-hardened framework for testing web apps at any scale, any browser and any platform.

🧑‍💻 Developer Friendly: Enjoy a hassle-free start with our installation wizard, TypeScript support, instant feedback via live test editing, advanced HTML-reporter, and smart features like auto-wait and retries.

📸 Visual Testing Redefined: Capture anything from specific details to whole pages, manage diffs with a streamlined UI, explore a variety of diff modes and let Testplane tackle flakiness.

🌐 Test Across Environments: Forget being tied to a couple of latest Chrome builds. Testplane goes beyond that, offering testing on real devices and broad automation protocol support, mirroring your users' actual environments.

📈 Scale Effortlessly: Run thousands of tests on a remote browser grid or benefit from ultra-fast local execution. Testplane offers sharding, parallel test execution, and isolated browser contexts.

Infinite Extensibility: Testplane offers a versatile plugin system with dozens of open-source plugins on GitHub, along with custom reporters, commands, and execution logic.

📦 Various Test Environments: With Testplane you can run tests not only in Node.js environment but also in the browser. It means you can run e2e/integration tests in Node.js and component/unit tests in browser.

Getting started

Note: if you prefer manual installation, you can run npm i -D testplane. Check out the Docs for details.

  1. Use the CLI wizard to set up testplane and generate basic configuration:

    npm init testplane@latest new-testplane-project

    You may add -- --verbose argument to launch a tool in extra-questions mode, to pick custom package manager or install extra plugins.

  2. Open the newly generated file testplane-tests/example.testplane.ts. We’ll modify the test to ensure the description includes expected text:

    describe("test", () => {
        it("example", async ({browser}) => {
            await browser.url("https://example.com/");
    
            const description = await browser.$("p");
    
            await expect(description).toHaveTextContaining("for use in illustrative examples in documents");
        });
    });
  3. Launch GUI:

    npx testplane gui
  4. Try running the test and watch it pass. Now, let's replace description text check with a visual assertion. Use the assertView command to carry out visual checks:

    - await expect(description).toHaveTextContaining("for use in illustrative examples in documents");
    + await description.assertView("description"); // "description" is just a name of the assertion
  5. Run the test again. It will fail, because a reference image for the heading is missing. You can accept the diff and re-run the test, it will then pass.

Congratulations on writing your first Testplane test, which navigates to a page and executes a visual assertion. Dive into the Docs to discover more awesome features Testplane has to offer!

Docs

You can find the Docs on our website.

Feel free to visit these pages for a brief overview of some of Testplane features:

We post the most actual info, guides and changelogs on the website. You can improve it by sending pull requests to this repository.

Rename from "Hermione"

This project was formerly known as "Hermione", but eventually some copyright and trademark issues surfaced, leading to the decision to rebrand. After some discussion, we settled on "Testplane" as the official new title. Considering this change as merely a rebranding, we've proceeded with the existing version count instead of starting anew. Thus, Testplane v8.x is a drop-in replacement for Hermione v8.x.

Learn more about migration from Hermione to Testplane in the Docs.

Contributing

Our mission with this repository is to make the Testplane development process open, while continuing to improve upon its features, performance and ease of use. We hope other organizations find value in our project and benefit from our work.

We welcome and appreciate community contributions. To ensure our efforts are in sync, we recommend to raise an issue or leave a comment beforehand.

Visit our contributing guide to understand more about our development process and how to get involved.

License

Testplane is MIT licensed.