HsnVahedi / engineerx-integration

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EngineerX Integration Test Microservice

Report bug · Request feature

Table of contents

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.

What does Integration Test mean

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.

Run this project

1. Clone this repository:

git clone https://github.com/HsnVahedi/engineerx-integration

2. Pull required docker images:

cd engineerx-integration/
docker-compose pull

3. Start EngineerX server:

docker-compose up

4. Initialize database with randomly generated objects:

Open another terminal and run this command:

docker-compose exec backend python manage.py initdb

5. Create a super user:

docker-compose exec backend python manage.py createsuperuser

6. Open Cypress

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:

About


Languages

Language:JavaScript 99.9%Language:Dockerfile 0.1%