EngineerX Integration Test Microservice
- Introduction to EngineerX project
- What does Integration Test mean
- Run this project
- EngineerX code repositories
Introduction to EngineerX project
EngineerX is an open source web application designed for engineers and specialists. It lets them share their ideas, create tutorials, represent themselves, employ other specialists and ...
Currently, The project is at it's first steps and includes a simple but awesome Content Management System (CMS) that lets content providers to create and manage blog posts.
Key features of the project:
- It's cloud native and can easily get deployed on popular cloud providers like (AWS, Azure and ...)
- It benefits from microservices architectural best practices. It uses technologies like docker and kubernetes to provide a horizontally scalable infrastructure with high availability.
- It includes a wide range of popular development frameworks and libraries like: django, reactjs, nextjs, wagtail and ...
- It benefits from TDD best practices and uses unittest, jest, react-testing-library and cypress for different kinds of tests.
- It uses Jenkins declarative pipeline syntax to implement CI/CD pipelines. (Pipeline as code)
- Developers are able to write different kinds of tests and run them in a parallelized and non-blocking manner. In other words, testing environment is also elastic and scalable.
- It uses Terraform to provision the required cloud infrastructure so it's really easy to deploy the whole project and destroy it whenever it's not needed any more. (Infrastructure as code)
- It's built on top of wagtail. Wagtail enables django developers to have a professional headless CMS which can be customized for many types of businesses.
In testing terminology, phrases like unit tests
and integration tests
could mean different things in different contexts. In this project, integration tests
means tests that include both backend and frontend microservices.
git clone https://github.com/HsnVahedi/engineerx-integration
cd engineerx-integration/
docker-compose pull
docker-compose up
Open another terminal and run this command:
docker-compose exec backend python manage.py initdb
docker-compose exec backend python manage.py createsuperuser
Now the application server is up and running on http://127.0.0.1:3000
. Administration pages are accessible on http://127.0.0.1:8000/admin
.
We have to install and open cypress:
npm install
npx cypress open --config-file cypress.dev.json
EngineerX code repositories
EngineerX consists of several code bases:
- engineerx-aws-cli
- engineerx-aws-infrastructure
- engineerx-aws-deployment
- engineerx-backend
- engineerx-frontend
- engineerx-integration
- engineerx-backend-unittest
- engineerx-frontend-unittest
- engineerx-integration-test
- engineerx-efs-pv
- engineerx-efs-pvc
- engineerx-backend-latest-tag
- engineerx-frontend-latest-tag