mirror of
https://github.com/pestphp/pest.git
synced 2026-03-06 07:47:22 +01:00
Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f7015fe59c | |||
| 7281e0ded7 | |||
| 5de8693e3b | |||
| 7d80f1d20e | |||
| b3119cc120 | |||
| 4e294edf76 | |||
| f96a1b2786 | |||
| a49cf7edc5 | |||
| b0f6a74cb6 | |||
| aaa226f6a6 | |||
| 69cb752d02 | |||
| cf00e58b7d | |||
| 1f39b28e2c | |||
| 9fcbca69d4 | |||
| ae1da79ac1 |
21
.github/workflows/static.yml
vendored
21
.github/workflows/static.yml
vendored
@ -2,10 +2,15 @@ name: Static Analysis
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
|
branches: [4.x]
|
||||||
pull_request:
|
pull_request:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '0 0 * * *'
|
- cron: '0 0 * * *'
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: static-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
static:
|
static:
|
||||||
if: github.event_name != 'schedule' || github.repository == 'pestphp/pest'
|
if: github.event_name != 'schedule' || github.repository == 'pestphp/pest'
|
||||||
@ -29,8 +34,22 @@ jobs:
|
|||||||
coverage: none
|
coverage: none
|
||||||
extensions: sockets
|
extensions: sockets
|
||||||
|
|
||||||
|
- name: Get Composer cache directory
|
||||||
|
id: composer-cache
|
||||||
|
shell: bash
|
||||||
|
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Cache Composer dependencies
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: ${{ steps.composer-cache.outputs.dir }}
|
||||||
|
key: static-php-8.3-${{ matrix.dependency-version }}-composer-${{ hashFiles('**/composer.json') }}
|
||||||
|
restore-keys: |
|
||||||
|
static-php-8.3-${{ matrix.dependency-version }}-composer-
|
||||||
|
static-php-8.3-composer-
|
||||||
|
|
||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
run: composer update --prefer-stable --no-interaction --no-progress --ansi
|
run: composer update --${{ matrix.dependency-version }} --no-interaction --no-progress --ansi
|
||||||
|
|
||||||
- name: Profanity Check
|
- name: Profanity Check
|
||||||
run: composer test:profanity
|
run: composer test:profanity
|
||||||
|
|||||||
24
.github/workflows/tests.yml
vendored
24
.github/workflows/tests.yml
vendored
@ -2,8 +2,13 @@ name: Tests
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
|
branches: [4.x]
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: tests-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
tests:
|
tests:
|
||||||
if: github.event_name != 'schedule' || github.repository == 'pestphp/pest'
|
if: github.event_name != 'schedule' || github.repository == 'pestphp/pest'
|
||||||
@ -13,9 +18,12 @@ jobs:
|
|||||||
fail-fast: true
|
fail-fast: true
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macos-latest] # windows-latest
|
os: [ubuntu-latest, macos-latest] # windows-latest
|
||||||
symfony: ['7.3']
|
symfony: ['7.4', '8.0']
|
||||||
php: ['8.3', '8.4', '8.5']
|
php: ['8.3', '8.4', '8.5']
|
||||||
dependency_version: [prefer-stable]
|
dependency_version: [prefer-stable]
|
||||||
|
exclude:
|
||||||
|
- php: '8.3'
|
||||||
|
symfony: '8.0'
|
||||||
|
|
||||||
name: PHP ${{ matrix.php }} - Symfony ^${{ matrix.symfony }} - ${{ matrix.os }} - ${{ matrix.dependency_version }}
|
name: PHP ${{ matrix.php }} - Symfony ^${{ matrix.symfony }} - ${{ matrix.os }} - ${{ matrix.dependency_version }}
|
||||||
|
|
||||||
@ -31,6 +39,20 @@ jobs:
|
|||||||
coverage: none
|
coverage: none
|
||||||
extensions: sockets
|
extensions: sockets
|
||||||
|
|
||||||
|
- name: Get Composer cache directory
|
||||||
|
id: composer-cache
|
||||||
|
shell: bash
|
||||||
|
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Cache Composer dependencies
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: ${{ steps.composer-cache.outputs.dir }}
|
||||||
|
key: ${{ matrix.os }}-php-${{ matrix.php }}-symfony-${{ matrix.symfony }}-composer-${{ hashFiles('**/composer.json') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ matrix.os }}-php-${{ matrix.php }}-symfony-${{ matrix.symfony }}-composer-
|
||||||
|
${{ matrix.os }}-php-${{ matrix.php }}-composer-
|
||||||
|
|
||||||
- name: Setup Problem Matches
|
- name: Setup Problem Matches
|
||||||
run: |
|
run: |
|
||||||
echo "::add-matcher::${{ runner.tool_cache }}/php.json"
|
echo "::add-matcher::${{ runner.tool_cache }}/php.json"
|
||||||
|
|||||||
14
Makefile
14
Makefile
@ -1,14 +0,0 @@
|
|||||||
# Well documented Makefiles
|
|
||||||
DEFAULT_GOAL := help
|
|
||||||
help:
|
|
||||||
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z0-9_-]+:.*?##/ { printf " \033[36m%-40s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
|
|
||||||
|
|
||||||
build: ## Build all docker images. Specify the command e.g. via make build ARGS="--build-arg PHP=8.2"
|
|
||||||
docker compose build $(ARGS)
|
|
||||||
|
|
||||||
##@ [Application]
|
|
||||||
install: ## Install the composer dependencies
|
|
||||||
docker compose run --rm composer install
|
|
||||||
|
|
||||||
test: ## Run the tests
|
|
||||||
docker compose run --rm composer test
|
|
||||||
@ -32,8 +32,8 @@ We cannot thank our sponsors enough for their incredible support in funding Pest
|
|||||||
### Platinum Sponsors
|
### Platinum Sponsors
|
||||||
|
|
||||||
- **[CodeRabbit](https://coderabbit.ai/?ref=pestphp)**
|
- **[CodeRabbit](https://coderabbit.ai/?ref=pestphp)**
|
||||||
- **[Devin](https://devin.ai/?ref=nunomaduro)**
|
|
||||||
- **[Mailtrap](https://l.rw.rw/pestphp)**
|
- **[Mailtrap](https://l.rw.rw/pestphp)**
|
||||||
|
- **[SerpApi](https://serpapi.com/?ref=nunomaduro)**
|
||||||
- **[Tighten](https://tighten.com/?ref=nunomaduro)**
|
- **[Tighten](https://tighten.com/?ref=nunomaduro)**
|
||||||
- **[Redberry](https://redberry.international/laravel-development/?utm_source=pest&utm_medium=banner&utm_campaign=pest_sponsorship)**
|
- **[Redberry](https://redberry.international/laravel-development/?utm_source=pest&utm_medium=banner&utm_campaign=pest_sponsorship)**
|
||||||
|
|
||||||
@ -48,6 +48,6 @@ We cannot thank our sponsors enough for their incredible support in funding Pest
|
|||||||
- [Route4Me](https://route4me.com/pt?ref=pestphp)
|
- [Route4Me](https://route4me.com/pt?ref=pestphp)
|
||||||
- [Nerdify](https://getnerdify.com/?ref=pestphp)
|
- [Nerdify](https://getnerdify.com/?ref=pestphp)
|
||||||
- [Akaunting](https://akaunting.com/?ref=pestphp)
|
- [Akaunting](https://akaunting.com/?ref=pestphp)
|
||||||
- [LambdaTest](https://lambdatest.com/?ref=pestphp)
|
- [TestMu AI](https://www.testmuai.com/?utm_medium=sponsor&utm_source=pest)
|
||||||
|
|
||||||
Pest is an open-sourced software licensed under the **[MIT license](https://opensource.org/licenses/MIT)**.
|
Pest is an open-sourced software licensed under the **[MIT license](https://opensource.org/licenses/MIT)**.
|
||||||
|
|||||||
@ -18,19 +18,19 @@
|
|||||||
],
|
],
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^8.3.0",
|
"php": "^8.3.0",
|
||||||
"brianium/paratest": "^7.16.1",
|
"brianium/paratest": "^7.19.0",
|
||||||
"nunomaduro/collision": "^8.8.3",
|
"nunomaduro/collision": "^8.9.0",
|
||||||
"nunomaduro/termwind": "^2.3.3",
|
"nunomaduro/termwind": "^2.4.0",
|
||||||
"pestphp/pest-plugin": "^4.0.0",
|
"pestphp/pest-plugin": "^4.0.0",
|
||||||
"pestphp/pest-plugin-arch": "^4.0.0",
|
"pestphp/pest-plugin-arch": "^4.0.0",
|
||||||
"pestphp/pest-plugin-mutate": "^4.0.1",
|
"pestphp/pest-plugin-mutate": "^4.0.1",
|
||||||
"pestphp/pest-plugin-profanity": "^4.2.1",
|
"pestphp/pest-plugin-profanity": "^4.2.1",
|
||||||
"phpunit/phpunit": "^12.5.8",
|
"phpunit/phpunit": "^12.5.12",
|
||||||
"symfony/process": "^7.4.4|^8.0.0"
|
"symfony/process": "^7.4.5|^8.0.5"
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
"filp/whoops": "<2.18.3",
|
"filp/whoops": "<2.18.3",
|
||||||
"phpunit/phpunit": ">12.5.8",
|
"phpunit/phpunit": ">12.5.12",
|
||||||
"sebastian/exporter": "<7.0.0",
|
"sebastian/exporter": "<7.0.0",
|
||||||
"webmozart/assert": "<1.11.0"
|
"webmozart/assert": "<1.11.0"
|
||||||
},
|
},
|
||||||
@ -55,10 +55,10 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"pestphp/pest-dev-tools": "^4.0.0",
|
"pestphp/pest-dev-tools": "^4.1.0",
|
||||||
"pestphp/pest-plugin-browser": "^4.2.1",
|
"pestphp/pest-plugin-browser": "^4.3.0",
|
||||||
"pestphp/pest-plugin-type-coverage": "^4.0.3",
|
"pestphp/pest-plugin-type-coverage": "^4.0.3",
|
||||||
"psy/psysh": "^0.12.18"
|
"psy/psysh": "^0.12.20"
|
||||||
},
|
},
|
||||||
"minimum-stability": "dev",
|
"minimum-stability": "dev",
|
||||||
"prefer-stable": true,
|
"prefer-stable": true,
|
||||||
|
|||||||
@ -1,14 +0,0 @@
|
|||||||
version: "3.8"
|
|
||||||
|
|
||||||
services:
|
|
||||||
php:
|
|
||||||
build:
|
|
||||||
context: ./docker
|
|
||||||
volumes:
|
|
||||||
- .:/var/www/html
|
|
||||||
composer:
|
|
||||||
build:
|
|
||||||
context: ./docker
|
|
||||||
volumes:
|
|
||||||
- .:/var/www/html
|
|
||||||
entrypoint: ["composer"]
|
|
||||||
@ -150,7 +150,7 @@ final class Laravel extends AbstractPreset
|
|||||||
->toHaveSuffix('Controller');
|
->toHaveSuffix('Controller');
|
||||||
|
|
||||||
$this->expectations[] = expect('App\Http')
|
$this->expectations[] = expect('App\Http')
|
||||||
->toOnlyBeUsedIn('App\Http');
|
->toOnlyBeUsedIn(['App\Http', 'App\Providers']);
|
||||||
|
|
||||||
$this->expectations[] = expect('App\Http\Controllers')
|
$this->expectations[] = expect('App\Http\Controllers')
|
||||||
->not->toHavePublicMethodsBesides(['__construct', '__invoke', 'index', 'show', 'create', 'store', 'edit', 'update', 'destroy', 'middleware']);
|
->not->toHavePublicMethodsBesides(['__construct', '__invoke', 'index', 'show', 'create', 'store', 'edit', 'update', 'destroy', 'middleware']);
|
||||||
|
|||||||
@ -6,7 +6,7 @@ namespace Pest;
|
|||||||
|
|
||||||
function version(): string
|
function version(): string
|
||||||
{
|
{
|
||||||
return '4.3.2';
|
return '4.4.1';
|
||||||
}
|
}
|
||||||
|
|
||||||
function testDirectory(string $file = ''): string
|
function testDirectory(string $file = ''): string
|
||||||
|
|||||||
@ -131,6 +131,7 @@ final class WrapperRunner implements RunnerInterface
|
|||||||
$parameters = $this->handleLaravelHerd($parameters);
|
$parameters = $this->handleLaravelHerd($parameters);
|
||||||
|
|
||||||
$parameters[] = $wrapper;
|
$parameters[] = $wrapper;
|
||||||
|
$parameters[] = '--test-directory='.TestSuite::getInstance()->testPath;
|
||||||
|
|
||||||
$this->parameters = $parameters;
|
$this->parameters = $parameters;
|
||||||
$this->codeCoverageFilterRegistry = new CodeCoverageFilterRegistry;
|
$this->codeCoverageFilterRegistry = new CodeCoverageFilterRegistry;
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
Pest Testing Framework 4.3.2.
|
Pest Testing Framework 4.4.1.
|
||||||
|
|
||||||
USAGE: pest <file> [options]
|
USAGE: pest <file> [options]
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
|
|
||||||
Pest Testing Framework 4.3.2.
|
Pest Testing Framework 4.4.1.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user