Intern vs WSO2 Contract Test Runner
Intern
theintern.ioWSO2 Contract Test Runner
github.comSide by side
| Figure | Intern | WSO2 Contract Test Runner |
|---|---|---|
| Price from | — | Free |
| Free plan | — | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | Yes | — |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | Yes |
| iOS | Yes | — |
| Android | Yes | — |
| Self-hosted | Yes | Yes |
| Plans published | 0 | 1 |
| Spec score · JavaScript Testing Frameworks | 7.9 (#7) | 7.1 (#19) |
| License | The homepage identifies Intern as New BSD licensed. | The repository identifies its license as Apache-2.0. |
| Purpose | Intern is a JavaScript testing framework for websites and applications. | It is a consumer-based contract testing library that calls live REST API endpoints and compares their responses with predefined contract responses. |
Plans
In their own words
Intern
Intern is a free, open-source test system for JavaScript libraries and applications. It supports unit and functional testing, with tests written in JavaScript or TypeScript using TDD or BDD styles. Tests can run in Node.js, web browsers, or across multiple browsers and platforms through the Intern runner, with parallel execution and code coverage reporting. The project can target web pages and native or hybrid iOS and Android applications. For browser automation, it supports WebDriver-compatible tools and services, including Selenium, Appium, and Selendroid. Listed cloud options include Sauce Labs, BrowserStack, TestingBot, and a user’s own Selenium Grid. Continuous-integration integrations include Travis CI, Jenkins, and TeamCity. Intern’s extensible architecture allows custom test interfaces, executors, and reporters. It runs on Android, iOS, Linux, macOS, self-hosted environments, the web, and Windows. Installation is provided through npm, and the project uses the New BSD license.
WSO2 Contract Test Runner
WSO2 Contract Test Runner is a free, Apache-2.0-licensed library for consumer-based testing of live REST API endpoints. It sends requests and compares returned data with expected responses defined in JSON contracts. A contract can include a request, expected response, assertions, and optional post-conditions. Assertions cover status codes, JSON body and header paths, exact values, regular expressions, emptiness, structures, arrays, and objects. Tests run through Docker by mounting contract and configuration files into the documented image workflow. Suites can run contracts before or after tests, with before-suite contracts running synchronously. Post-conditions can place extracted values into suite-scoped or global environment variables, and contracts can pause for a specified number of seconds. The sample setup uses bearer authorization, cookies, a certificate keystore, and a client truststore. XML path support is listed as a todo. Deployment is Linux and self-hosted.