Lode is a universal graphical user interface (GUI) designed to simplify unit testing across various programming languages. Built with Electron, TypeScript, and Vue.js, Lode provides a modern and intuitive platform for developers to execute, manage, and visualize their unit tests.
Key Features:
Cross-platform support for major operating systems.
Integration with popular testing frameworks like PHPUnit and Jest.
Context isolation for secure application development and easier testing of the main and renderer processes.
Centralized test management with a user-friendly interface.
Built using industry-standard tools, including Cypress for end-to-end testing.
Audience & Benefit:
Ideal for developers working with multiple programming languages who need an intuitive and reliable tool to streamline their unit testing process. Lode helps accelerate development by enabling faster test execution, easier error identification, and comprehensive test management without the need for command-line interfaces.
Lode is an open source Electron-based universal test runner graphical user interface. It is written in TypeScript and Vue.
Getting started
You can download the latest pre-packaged version here or choose a version from the releases page. For instructions on how to use the software, see the documentation.
Lode currently supports the following testing frameworks:
To run it locally, you must first clone this repository and run the following commands:
yarn install
yarn dev
Afterwards, to build an application package for the current platform, run the following:
yarn build
Alternatively, you can pack and execute the application directly, which is useful to debug issues that might not occur in development mode. Note that because production state is encrypted, the existing development state will not work:
yarn simulate
The Lode codebase has two sets of tests: Jest for the main process and Cypress for the renderer process.
yarn test # Jest tests
yarn test:cypress # Cypress tests
yarn cypress # Open the Cypress application
Because the Lode application enforces context isolation, we are able to run renderer process without the need for Node.js APIs, and since Electron's API is access through the preload scripts using a centralized Lode object, we can easily mock their behavior for testing with Cypress.
If you're just getting started with Electron development, I would strongly recommend adhering to context isolation. Not only it's essential for a secure application, it also gives you a clear boundary for testing the main and renderer processes separately, as Lode does.
Lode can be installed via winget, ensuring seamless integration into your workflow. With its robust feature set and cross-platform compatibility, Lode empowers developers to focus on building high-quality applications while maintaining efficient and reliable testing practices.