Acceptance testing for the Moodle App
In order to run tests that carry out automated functionality testing for the Moodle App, you can write Acceptance tests. This can be useful if you want to test plugins that are compatible with the app, or you're contributing to the app core. Behat tests for the app work the same way as tests for Moodle core, but they are not run as part of a normal Behat execution and there are some differences that we'll go through in this page.
Behat
This page describes the internals of Behat and the integration with Moodle.
Browsers
This page complements Behat providing info about how to run the acceptance tests suite in different browsers.
Continuous Integration for the Moodle App
Tests can be useful during development, but a good test suite really shines with CI processes in place. Running tests and other checks on a regular basis can be helpful to maintain good quality assurance, and catch regressions as early as possible.
Generator tool
The Generator tool is a Moodle administration tool that allows you to generate test data for your Moodle site. It is helpful for testing and development purposes, as it can create a large number of users, courses, and other entities in a short time.
Moodle App Acceptance Tests Upgrade Guide
In the following guide, you will learn how to upgrade your plugins' acceptance tests to support newer versions of the app.
Penetration testing
This is information for people who want to performing a penetration test of their Moodle instance as well as information for pen testers.
PHPUnit
PHPUnit by Sebastian Bergmann is an advanced unit testing framework for PHP. It is installed as Composer dependency and is not part of Moodle installation. To run PHPUnit tests, you have to manually install it on your development computer or test server.
QA testing
All the information related to the Qualify Assurance tests during the Moodle development.
Running acceptance tests
Moodle uses Behat, a php framework for automated functional testing, as part of a suite of testing tools.
Testing
All the information related to testing during the Moodle development.
Testing credits
The following people have helped with Quality Assurance (QA) testing:
Testing LMS issues in the mobile app
Information related to mobile app testing of LMS issues
Testing of integrated issues
All the information related to the integration review process during the Moodle development.
Unit testing for the Moodle App
Unit tests are written in JavaScript using Jest. If you want to create a new one, Jest is already configured and you only need to create a file ending with .test.ts within the project. If you're going to do so, remember to follow the file location conventions.
Working combinations of OS+Browser+selenium
As OS, Browsers and Selenium keeps updating, some combination might fail on different Moodle releases.
Writing acceptance tests
This documentation gives some hints on writing behat tests for Moodle core, and for plugins. The focus of the documentation is on behat tests for plugins. Behat Features and Scenarios are written in a natural language, and should