Updated Testing (markdown)

master
Hunter Long 2020-05-01 05:34:55 -07:00
parent 1bcf5bd1e2
commit aadeaf4f43
1 changed files with 31 additions and 11 deletions

@ -1,16 +1,34 @@
If you want to test your updates with the current golang testing units, you can follow the guide below to run a full test process. Each test for Statping will run in MySQL, Postgres, and SQlite to make sure all database types work correctly. If you want to test your updates with the current golang testing units, you can follow the guide below to run a full test process. Each test for Statping will run in MySQL, Postgres, and SQlite to make sure all database types work correctly.
## Create Docker Databases ## Requirements
The easiest way to run the tests on all 3 databases is by starting temporary databases servers with Docker. Docker is available for Linux, Mac and Windows. You can download/install it by going to the [Docker Installation](https://docs.docker.com/install/) site. - Golang (1.14.* or whichever `go.mod` states)
- [go.rice](https://github.com/GeertJohan/go.rice) Compiles all assets into golang file
- Node (currently using `10.17`)
- Yarn
- Sass
```go ## Basic Testing
The easiest way to run local unit testing by using SQLite and following the commands below...
1. Make sure you have the requirements above. (being able to run `rice`)
2. `cd frontend && yarn` Install npm packages for the frontend
3. `make compile` Creates production version of Vue frontend and compiles all assets with `rice`.
4. `make install` Will install `statping` locally so your system test CLI commands/flags.
5. `go test -v ./...` Run all tests for Statping.
## Notifier Testing
To test the notifiers, you must include an environment variable that is set in each notifier test. If that notifier test environment variable is not set, it will be skipped.
## Create Docker Databases
For more advanced testing, you can connect to a different type of database by using the `DB_CONN` environment variable. You can start them with Docker. Docker is available for Linux, Mac and Windows. You can download/install it by going to the [Docker Installation](https://docs.docker.com/install/) site.
```bash
docker run -it -d \ docker run -it -d \
-p 3306:3306 \ -p 3306:3306 \
-env MYSQL_ROOT_PASSWORD=password123 \ -env MYSQL_ROOT_PASSWORD=password123 \
-env MYSQL_DATABASE=root mysql -env MYSQL_DATABASE=root mysql
``` ```
```go ```bash
docker run -it -d \ docker run -it -d \
-p 5432:5432 \ -p 5432:5432 \
-env POSTGRES_PASSWORD=password123 \ -env POSTGRES_PASSWORD=password123 \
@ -18,14 +36,16 @@ docker run -it -d \
-env POSTGRES_DB=root postgres -env POSTGRES_DB=root postgres
``` ```
Once you have MySQL and Postgres running, you can begin the testing. SQLite database will automatically create a `statup.db` file and will delete after testing. Once you have MySQL and Postgres running, you can begin the testing. SQLite database will automatically create a `statping.db` file and will delete after testing.
## Run Tests ## Run Tests
Insert the database environment variables to auto connect the the databases and run the normal test command: `go test -v`. You'll see a verbose output of each test. If all tests pass, make a push request! 💃 Insert the database environment variables to auto connect the the databases and run the normal test command: `go test -v ./...`. You'll see a verbose output of each test. If all tests pass, make a push request! 💃
```go
```bash
DB_CONN=sqlite \
DB_DATABASE=root \ DB_DATABASE=root \
DB_USER=root \ DB_USER=root \
DB_PASS=password123 \ DB_PASS=password123 \
DB_HOST=localhost \ DB_HOST=localhost \
go test -v go test -v ./...
``` ```