Skip to content

Commit

Permalink
update unit tests and Docker commands
Browse files Browse the repository at this point in the history
  • Loading branch information
deminy committed Jan 11, 2024
1 parent b77d6d5 commit 712c40b
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 29 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/build_docker_images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ jobs:
- {type: "php", tag: "php-only"}
- {type: "swoole", tag: "swoole-enabled"}

name: build image deminy/counit:${{ matrix.docker.tag }}

steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down
39 changes: 19 additions & 20 deletions .github/workflows/unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,39 +16,38 @@ jobs:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Services
- name: Start Docker Containers
uses: isbang/compose-action@v1.5.1

- name: Install Dependencies
run: |
docker-compose up -d
docker exec -t $(docker ps -qf "name=swoole") sh -c "composer require phpunit/phpunit ${{ matrix.phpunit }} -nq --no-progress"
set -ex
sleep 15 # Seems that we need to give the MySQL container enough time to warm up.
docker ps
docker compose exec -T swoole composer require "phpunit/phpunit=${{ matrix.phpunit }}" -W -nq --no-progress
docker compose exec -T swoole ./vendor/bin/phpunit --version # Check current version of PHPUnit.
- name: Run Unit Tests
run: |
set -ex
# Check current version of PHPUnit.
docker exec -t $(docker ps -qf "name=swoole") sh -c "./vendor/bin/phpunit --version"
# Run tests using PHPUnit (Swoole is disabled).
docker exec -t $(docker ps -qf "name=php") sh -c "./vendor/bin/phpunit --testsuite global"
docker exec -t $(docker ps -qf "name=php") sh -c "./vendor/bin/phpunit --testsuite case-by-case"
docker compose exec -T php ./vendor/bin/phpunit --testsuite global
docker compose exec -T php ./vendor/bin/phpunit --testsuite case-by-case
# Run tests using PHPUnit, with Swoole enabled.
docker exec -t $(docker ps -qf "name=swoole") sh -c "./vendor/bin/phpunit --testsuite global"
docker exec -t $(docker ps -qf "name=swoole") sh -c "./vendor/bin/phpunit --testsuite case-by-case"
docker compose exec -T swoole ./vendor/bin/phpunit --testsuite global
docker compose exec -T swoole ./vendor/bin/phpunit --testsuite case-by-case
# Run tests using counit (Swoole is disabled).
docker exec -t $(docker ps -qf "name=php") sh -c "./counit --testsuite global"
docker exec -t $(docker ps -qf "name=php") sh -c "./counit --testsuite case-by-case"
docker compose exec -T php ./counit --testsuite global
docker compose exec -T php ./counit --testsuite case-by-case
# Run tests using counit, with Swoole enabled.
docker exec -t $(docker ps -qf "name=swoole") sh -c "./counit --testsuite global"
docker exec -t $(docker ps -qf "name=swoole") sh -c "./counit --testsuite case-by-case"
docker compose exec -T swoole ./counit --testsuite global
docker compose exec -T swoole ./counit --testsuite case-by-case
# Test compatibility with PHPUnit.
docker exec -t $(docker ps -qf "name=php") sh -c "./counit --testsuite compatibility"
docker exec -t $(docker ps -qf "name=swoole") sh -c "./counit --testsuite compatibility"
- name: Stop and Remove Docker Containers
run: docker-compose down
docker compose exec -T php ./counit --testsuite compatibility
docker compose exec -T swoole ./counit --testsuite compatibility
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ To run the sample tests, please start the Docker containers and install Composer

```bash
docker-compose up -d
docker exec -ti $(docker ps -qf "name=swoole") sh -c "composer install -n"
docker compose exec -ti swoole composer install -n
```

There are five containers started: a PHP container, a Swoole container, a Redis container, a MySQL container, and a web
Expand Down Expand Up @@ -241,34 +241,34 @@ Here we will run the tests under different environments, with or without Swoole.

```bash
# To run test suite "global":
docker exec -ti $(docker ps -qf "name=php") sh -c "./vendor/bin/phpunit --testsuite global"
docker compose exec -ti php ./vendor/bin/phpunit --testsuite global
# or,
docker exec -ti $(docker ps -qf "name=swoole") sh -c "./vendor/bin/phpunit --testsuite global"
docker compose exec -ti swoole ./vendor/bin/phpunit --testsuite global

# To run test suite "case-by-case":
docker exec -ti $(docker ps -qf "name=php") sh -c "./vendor/bin/phpunit --testsuite case-by-case"
docker compose exec -ti php ./vendor/bin/phpunit --testsuite case-by-case
# or,
docker exec -ti $(docker ps -qf "name=swoole") sh -c "./vendor/bin/phpunit --testsuite case-by-case"
docker compose exec -ti swoole ./vendor/bin/phpunit --testsuite case-by-case
```

`#2` Run the test suites using _counit_ (without Swoole):

```bash
# To run test suite "global":
docker exec -ti $(docker ps -qf "name=php") sh -c "./counit --testsuite global"
docker compose exec -ti php ./counit --testsuite global

# To run test suite "case-by-case":
docker exec -ti $(docker ps -qf "name=php") sh -c "./counit --testsuite case-by-case"
docker compose exec -ti php ./counit --testsuite case-by-case
```

`#3` Run the test suites using _counit_ (with extension Swoole enabled):

```bash
# To run test suite "global":
docker exec -ti $(docker ps -qf "name=swoole") sh -c "./counit --testsuite global"
docker compose exec -ti swoole ./counit --testsuite global

# To run test suite "case-by-case":
docker exec -ti $(docker ps -qf "name=swoole") sh -c "./counit --testsuite case-by-case"
docker compose exec -ti swoole ./counit --testsuite case-by-case
```

The first two sets of commands take about same amount of time to finish. The last set of commands uses _counit_ and runs
Expand Down

0 comments on commit 712c40b

Please sign in to comment.