Top 23 Test Open-Source Projects

  • Playwright

    Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.

    Project mention: Any good resources on how to do “interaction” tests? | reddit.com/r/PHP | 2023-05-27

    Use some library with WebDriver API (f.ex. Symfony Panther if you want to stick to PHP, or Playwright) to run tests against your WP backend

  • Cypress

    Fast, easy and reliable testing for anything that runs in a browser.

    Project mention: Scraping a site? | reddit.com/r/sysadmin | 2023-05-25

    Maybe something like Cypress is what you're looking for? cypress.io

  • Appwrite

    Appwrite - The Open Source Firebase alternative introduces iOS support . Appwrite is an open source backend server that helps you build native iOS applications much faster with realtime APIs for authentication, databases, files storage, cloud functions and much more!

  • mocha

    ☕️ simple, flexible, fun javascript test framework for node.js & the browser

    Project mention: API testing for new project (new to APIs) | reddit.com/r/softwaretesting | 2023-05-19
  • javascript-testing-best-practices

    📗🌐 🚢 Comprehensive and exhaustive JavaScript & Node.js testing best practices (December 2022)

    Project mention: Awesome Github Repos to Master JAVASCRIPT | dev.to | 2023-02-03

    😎 You want to take your JS testing skills to the next level, here is a nice repo -> javascript-testing-best-practices

  • Bazel

    a fast, scalable, multi-language and extensible build system

    Project mention: Ask HN: How do you deal with large Python code bases? | news.ycombinator.com | 2023-05-28

    The larger your codebase gets the more bazel becomes a requirement. Bazel is really not negotiable for large python code bases. The more bazel is put off, the more pain you will endure before you eventually are forced to use bazel. You will be forced to use bazel or a system like it because eventually your good devs will not tolerate your codebase and leave without it.


    Other than bazel you will have to start hacking away at dependency problems.

    No inline imports, no circular imports. Imports all sorted at the top of your file. You will have to start enforcing good hygiene with linters.

    You will need to create warnings against using the global scope.

    You will need to construct the clients for all your dependencies in main()

    You will need to discourage the use of calling non trivial functions in constructors. (this property largely encourages dependency injection).

    There are exceptions to every rule, but if you are going to violate scope or not dependency inject, those things need to be done very mindfully.

    As the structure of your code improves via good scoping and injected dependencies, it will become easier to change and easier to test.

    You will have to devote some serious consideration to how to quarantine business logic from server code. Generally, your product developers shouldn't be doing much outside of defining their data and altering business logic from within a route. If the place where business logic is executed is commingled with how data-stores are manipulated, you're going to have a bad time. Likewise if the place business logic is executed is commingled with the presentation of it to customers, you're going to have a bad time.

    Python does not have a culture of dependency injection because it's so easy to import antigravity and fly away. This makes writing tests hard and promotes spaghetti code. Lack of dependency injection (which means violating scoping) is the entropic force that makes codebases miserable as time increases.

    Additionally, you will have to think hard about state. If you can't restart a process trivially, or balance traffic to a different machine trivially, you are going to make your operational people's lives hard. State belongs in state storage. Put it in an RDBMS, put it in redis, put it in memcached, put it in anything but a python processes memory. This means that any two requests should be able to be sent to any two machines. This is a deeply important property for scaling.

    Lastly, if you do not have good answers for observability, in terms of time series data, log data, exception data, and event data (for observability only), you will have a bad time. These are generally the things it is ok to violate scope to use.

  • Enzyme

    JavaScript Testing utilities for React

    Project mention: How To Scale Your React Applications | dev.to | 2023-04-07

    One way to do this is by writing tests for your React components. Tools like Jest and Enzyme make it easy to test your component's behavior, rendering output, and state changes. By writing tests for your components, you can ensure that they behave as expected and prevent issues before they reach production.

  • react-testing-library

    🐐 Simple and complete React DOM testing utilities that encourage good testing practices.

    Project mention: Some Very Cool (Underrated maybe) React Libraries | dev.to | 2023-02-08

    React Testing Library: This library provides simple and complete React DOM testing utilities that encourage good testing practices. It helps you write tests that are more focused on the behavior of your components rather than the implementation details. https://github.com/testing-library/react-testing-library

  • Sonar

    Write Clean JavaScript Code. Always.. Sonar helps you commit clean code every time. With over 300 unique rules to find JavaScript bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work.

  • stf

    Control and manage Android devices from your browser.

    Project mention: Access to a physical device for development and/or debugging | reddit.com/r/androiddev | 2022-08-20

    Did you know this exists? https://openstf.io/

  • pytest

    The pytest framework makes it easy to write small tests, yet scales to support complex functional testing

    Project mention: Testing an automation framework | reddit.com/r/softwaretesting | 2023-05-16
  • TestCafe

    A Node.js tool to automate end-to-end web testing.

    Project mention: Avem si noi joburi pentru junior tester in perioada asta? | reddit.com/r/programare | 2023-03-22
  • vitest

    A Vite-native test framework. It's fast!

    Project mention: Simplify Your Mock Data Creation in Tests with @lifeiscontent/to-mocked | dev.to | 2023-05-23

    The added benefit of using toMocked is the immediate feedback it provides when application code changes and tests break. It shows how the expectations have changed, making it significantly easier to maintain and update your test suite. Especially when you're using testing frameworks like Vitest, toMocked integrates seamlessly, easing the writing of tests.

  • gremlins.js

    Monkey testing library for web apps and Node.js

  • warriorjs

    🏰 An exciting game of programming and Artificial Intelligence

    Project mention: Which learning platform do you use? If you don’t, how do you study and keep yourself up to date with the ever expanding tech industry? | reddit.com/r/learnprogramming | 2023-02-13

    Also for fun / to answer the passion part: how far can you get in https://warriorjs.com/ or https://play.battlesnake.com/ :) It's getting more advanced than you'd think

  • Protractor

    E2E test framework for Angular apps

    Project mention: Introduction to Cypress and UI Test Automation | reddit.com/r/u_Ok-Examination-4768 | 2023-05-23

    Cypress is a next-generation front-end Automation testing tool built for modern web applications. It is a JavaScript-based end-to-end testing framework and is known for faster test execution as compared with other testing tools (like Selenium or Protractor).

  • WebdriverIO

    Next-gen browser and mobile automation test framework for Node.js

    Project mention: Browserstack - too expensive? Is our consultant SCAMMING us? | reddit.com/r/cicd | 2023-03-02

    We recently hired an engineer to write us integration tests with webdriver.io. All of our other tests run fine in Github actions - rspec, javascript jest, etc.

  • ginkgo

    A Modern Testing Framework for Go

    Project mention: Recommendations for Learning Test-Driven Development (TDD) in Go? | reddit.com/r/golang | 2023-04-09

    A bit off-topic, but i really like the ginkgo BDD framework

  • Apache JMeter

    Apache JMeter open-source load testing tool for analyzing and measuring the performance of a variety of services

    Project mention: The 36 tools that SaaS can use to keep their product and data safe from criminal hackers (manual research) | reddit.com/r/SaaS | 2023-05-22


  • REST Assured

    Java DSL for easy testing of REST services

  • robolectric

    Android Unit Testing Framework

    Project mention: Best libraries for Android Developers | dev.to | 2022-07-15


  • uiautomator2

    Android Uiautomator2 Python Wrapper

  • Kotest

    Powerful, elegant and flexible test framework for Kotlin with additional assertions, property testing and data driven testing

    Project mention: Best practices for Unit Testing Android Apps with Mockk, Kotest and others | dev.to | 2023-05-10

    As a matter of fact, in the previous examples, we have shifted a bit away from the TDD standards in the meaning that we test not only the operability of our code, but rather check if the code runs according to certain specifications (Given/When/Then). These specifications are our tests, and the syntactic sugar in the form of the possibility to give clear names to the tests using DisplayName and the grouping of the tests by a set of similar attributes helps us clearly formulate these specifications. There is an entire family of frameworks in different languages that allow us to create such specifications: for Java it is Spock, for Ruby—RSpec, and for Kotlin—Spek and Kotest frameworks. Below, I will go into more detail about them.

  • SeleniumBase

    Python browser automation framework for creating reliable end-to-end tests.

    Project mention: Tips for testing your websites the smart way (I'm a beginner) | reddit.com/r/web_design | 2022-09-29

    I recommend you to check out Seleniumbase, its a frame work for Selenium. Link: https://github.com/seleniumbase/SeleniumBase

  • timecop

    A gem providing "time travel", "time freezing", and "time acceleration" capabilities, making it simple to test time-dependent code. It provides a unified method to mock Time.now, Date.today, and DateTime.now in a single call.

    Project mention: What questions do you consider important for a Ruby on Rails technical interview? | reddit.com/r/rails | 2022-12-05

    vs https://github.com/travisjeffery/timecop yes it's true and i am happy to show everybody that they don't need timecop in rails test suite anymore.

  • InfluxDB

    Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-05-28.

Test related posts


What are some of the best open-source Test projects? This list will help you:

Project Stars
1 Playwright 51,677
2 Cypress 43,436
3 mocha 22,024
4 javascript-testing-best-practices 21,478
5 Bazel 20,829
6 Enzyme 19,983
7 react-testing-library 17,843
8 stf 12,799
9 pytest 10,216
10 TestCafe 9,647
11 vitest 9,068
12 gremlins.js 8,948
13 warriorjs 8,924
14 Protractor 8,792
15 WebdriverIO 8,112
16 ginkgo 7,176
17 Apache JMeter 7,029
18 REST Assured 6,383
19 robolectric 5,646
20 uiautomator2 5,174
21 Kotest 3,930
22 SeleniumBase 3,307
23 timecop 3,248
TestGPT | Generating meaningful tests for busy devs
Get non-trivial tests (and trivial, too!) suggested right inside your IDE, so you can code smart, create more value, and stay confident when you push.