My OpenMRS Fellowship Journey: Piumal Rathnayake

I began the third week of June by making some improvements to the testing guide of the new O3-docs. Specifically, I enhanced the e2e testing section by adding more details and instructions on writing new tests, do’s and don’ts, best practices, test naming conventions etc. You can find the updated doc from here.


Over the past few weeks, we’ve been facing a bug that causes the e2e test process on the esm-patient-chart repository to consistently fail. Despite the tests passing locally, the GitHub action builds were failing after running for around 30 minutes or more. When investigating this issue and reviewing failed workflow logs, I noticed that the tests were failing at random steps without clear error messages. However, I did find some annotations in the overview of each failed workflow indicating a connection loss with the GitHub action runner and occasional crashes.

Based on this information, I concluded that the GitHub Actions Runner might be crashing due to resource limitations. The default runner has a 2-core CPU and 7 GB of RAM, which proved insufficient to run all 17 esm apps in the esm-patient-chart simultaneously.

To address this problem, @ibacher suggested several solutions in the related Slack thread. I’m currently trying one of the suggestions. Since this issue is critical, I decided to include it as part of my fellowship capstone project.


Speaking of the capstone project, after some discussions, I updated my project plan based on the following main objectives:

  1. Fixing the resource limitation issue with running e2e tests on the esm-patient-chart, as mentioned earlier.
  2. Enhancing e2e test coverage of the esm-patient-chart, patient-registration, esm-form-builder, and other o3 repositories.
  3. Implementing manual test plans for the main functionalities.

We had a few other ideas, such as unit and integration test coverage and automated performance testing. However, I removed those from the proposal because I realized they would increase the scope and exceed the available time. You can find more details about the project here.


In addition to the above tasks, I made a minor improvement to the esm-form-builder app by utilizing the form search functionality in e2e tests.


From this week onwards, I will be working on the capstone project, beginning with resolving the resource limitation issue.