HsnVahedi / engineerx-backend-unittest

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EngineerX Backend Unittests

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 unit test mean

In testing terminology, phrases like unit tests and integration tests could mean different things in different contexts. In this project, unit tests means tests that include only one set of microservices. Either backend microservices or frontend microservices.

Testing Environment

Backend tests are run in the kubernetes cluster created during creating infrastructure. A pod named unittest-${var.test_number} will be created in backend-test namespace. Then python unittests are run. Here is the terraform file which declares unittest-${var.test_number} pod.

See the Jenkinsfile for more information.

EngineerX code repositories

EngineerX consists of several code bases:

About


Languages

Language:HCL 100.0%