HUnit
HUnit is a unit testing framework for Haskell, inspired by the JUnit tool for Java. It's easy to use HUnit, assuming you are familiar with Haskell, though not necessarily with JUnit. A test-centered methodology for software development is most effective when tests are easy to create, change, and execute. The JUnit tool pioneered support for test-first development in Java. HUnit is an adaptation of JUnit to Haskell, a general-purpose, purely functional programming language. With HUnit, as with JUnit, you can easily create tests, name them, group them into suites, and execute them, with the framework checking the results automatically. Test specification in HUnit is even more concise and flexible than in JUnit, thanks to the nature of the Haskell language. HUnit currently includes only a text-based test controller, but the framework is designed for easy extension. Run the tests as a group.
Learn more
pytest
pytest helps you write better programs. The pytest framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries. Due to pytest’s detailed assertion introspection, only plain assert statements are used. Detailed info on failing assert statements. Auto-discovery of test modules and functions. Modular fixtures for managing small or parametrized long-lived test resources. Can run unittest (including trial) and nose test suites out of the box. Supports Python 3.6+ and PyPy 3. Rich plugin architecture, with over 315+ external plugins and thriving community. The maintainers of pytest and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use.
Learn more
TestNG
TestNG is a testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use, such as annotations, or the possibility to run your tests in arbitrarily big thread pools with various policies available (all methods in their own thread, one thread per test class, etc.). You can test that your code is multithread safe, there is flexible test configuration, support for data-driven testing (with @DataProvider), support for parameters, powerful execution model (no more TestSuite). There is a supported by a variety of tools and plug-ins (Eclipse, IDEA, Maven, etc.), it also embeds BeanShell for further flexibility, and there is default JDK functions for runtime and logging (no dependencies), and dependent methods for application server testing. TestNG is designed to cover all categories of tests, unit, functional, end-to-end, integration, etc.
Learn more
Qodo
Qodo (formerly Codium) analyzes your code and generates meaningful tests to catch bugs before you ship. Qodo maps your code’s behaviors, surfaces edge cases, and tags anything that looks suspicious. Then, it generates clear and meaningful unit tests that match how your code behaves. Get full visibility of how your code behaves, and how the changes you make affect the rest of your code. Code coverage is broken. Meaningful tests actually check functionality, giving you the confidence needed to commit. Spend fewer hours writing questionable test cases, and more time developing useful features for your users. By analyzing your code, docstring, and comments, Qodo suggests tests as you type. All you have to do is add them to your suite. Qodo is focused on code integrity: generating tests that help you understand how your code behaves; finding edge cases and suspicious behaviors; and making your code more robust.
Learn more