admin管理员组文章数量:1313734
I've been working on my tests for an hour and it works on my machine but when I try to put it in github actions, it stops and it can't create any files for mocking.
I've no idea how to allow my action to write on github.
name: PHP Composer
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate composer.json and composer.lock
run: composer validate --strict
- name: Cache Composer packages
id: composer-cache
uses: actions/cache@v3
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
- name: Install dependencies
run: composer install --prefer-dist --no-progress
# Add a test script to composer.json, for instance: "test": "vendor/bin/phpunit"
# Docs: .md
- name: Run test suite
run: ./vendor/bin/phpunit
Here's my github action file
PHPUnit 11.5.4 by Sebastian Bergmann and contributors.
Runtime: PHP 8.4.3
Configuration: /home/runner/work/archers-framework/archers-framework/phpunit.xml
..........FF..F..........................FF..FF.................. 65 / 97 ( 67%)
................................ 97 / 97 (100%)
Time: 00:00.072, Memory: 10.00 MB
Authority (Tests\ArchersFramework\Http\Authority)
✔ Valid authority string
✔ Authority string without credentials
✔ Authority string without port
✔ Authority string without credentials and port
✔ Invalid authority string
✔ Authority with credentials only
✔ Authority to string
Container
✔ Get returns same instance for singleton
✔ Get returns new instance for factory
✔ Instance returns same object
✔ Autowires dependencies
✔ Throws exception for not autowireable class
✔ Inject attribute overrides default
✔ Throws exception for missing type hint
✔ Throws exception for unresolvable scalar type
✔ Handles nullable parameters
✔ Detects circular dependency
Controller Discovery (ArchersFramework\Tests\Router\Discovery\ControllerDiscovery)
✘ Discover controllers in windows path
│
│ Failed asserting that an array contains 'App\Controllers\WindowsTestController'.
│
│ /home/runner/work/archers-framework/archers-framework/tests/Router/Discovery/ControllerDiscoveryTest.php:85
│ /home/runner/work/archers-framework/archers-framework/vendor/bin/phpunit:122
│
✘ Discover controllers in linux path
│
│ Failed asserting that an array contains 'App\Controllers\LinuxTestController'.
│
│ /home/runner/work/archers-framework/archers-framework/tests/Router/Discovery/ControllerDiscoveryTest.php:98
│ /home/runner/work/archers-framework/archers-framework/vendor/bin/phpunit:122
│
✔ Ignores non php files
✔ Ignores php files with wrong extension
✘ Handles nested directories
│
│ Failed asserting that an array contains 'App\Controllers\Nested\DeepController'.
│
│ /home/runner/work/archers-framework/archers-framework/tests/Router/Discovery/ControllerDiscoveryTest.php:137
│ /home/runner/work/archers-framework/archers-framework/vendor/bin/phpunit:122
│
✘ Handles mixed directory separators
│
│ Failed asserting that an array contains 'App\Controllers\Mixed\PathController'.
│
│ /home/runner/work/archers-framework/archers-framework/tests/Router/Discovery/ControllerDiscoveryTest.php:150
│ /home/runner/work/archers-framework/archers-framework/vendor/bin/phpunit:122
│
✔ Handles empty directory gracefully
Glob Recursive (Tests\ArchersFramework\GlobRecursive)
✘ Glob recursive finds files
│
│ Failed asserting that actual size 0 matches expected size 2.
│
│ /home/runner/work/archers-framework/archers-framework/tests/GlobRecursiveTest.php:53
│
✘ Glob recursive ignores non matching files
│
│ Failed asserting that actual size 0 matches expected size 1.
│
│ /home/runner/work/archers-framework/archers-framework/tests/GlobRecursiveTest.php:62
│
✔ Glob recursive handles empty directory
✔ Glob recursive with no matches
✘ Glob recursive handles complex directory structures
│
│ Failed asserting that actual size 0 matches expected size 3.
│
│ /home/runner/work/archers-framework/archers-framework/tests/GlobRecursiveTest.php:89
│
Header Collection (Tests\ArchersFramework\Http\HeaderCollection)
✔ Constructor initializes headers
✔ Get returns null if header does not exist
✔ Add adds new header value
✔ Set replaces existing header values
✔ Delete removes header
✔ Delete does nothing if header does not exist
✔ Get all returns all headers
✔ Headers are case insensitive
Path (ArchersFramework\Tests\Utilities\Path)
✔ Path joins multiple segments
✔ Path normalizes slashes
✔ Path trims leading and trailing slashes
✔ Empty path returns empty string
✔ Single segment path
✔ Path with mixed separators
✔ Windows absolute path
✔ Windows u n c path
✔ Linux absolute path
✔ Path with empty segments
✔ Path with multiple consecutive slashes
✔ Path with special characters
✔ Path with trailing backslash
Response
✔ Response constructor
✔ Send response
Route Discovery (ArchersFramework\Tests\Router\Discovery\RouteDiscovery)
✔ Discover routes from controller
✔ Discover routes with prefix from route collection
✔ Discover no routes
✔ Discover invalid controller class
✔ Discover routes with multiple controllers
Router (ArchersFramework\Tests\Router\Router)
✔ Dispatch returns response for valid route
✔ Dispatch handles parameterized route
✔ Dispatch throws not found for invalid route
✔ Dispatch throws method not allowed
✔ Resolve parameters returns parameters
✔ Resolve parameters returns null for mismatch
Template (ArchersFramework\Tests\Router\Template)
✔ Constructor parses valid template string
✔ Constructor defaults type to string
✔ Constructor throws exception for invalid template
✔ Is value valid returns true for valid int
✔ Is value valid returns false for invalid int
✔ Is value valid returns true for valid float
✔ Is value valid returns false for invalid float
✔ Is value valid returns true for boolean
✔ Is value valid returns false for invalid boolean
✔ Is value valid returns true for string
✔ Get processed value returns int
✔ Get processed value returns float
✔ Get processed value returns bool
✔ Get processed value returns string
✔ Get processed value throws exception for invalid value
ULID (Tests\ArchersFramework\Utilities\ULID)
✔ Generated ulid has correct length
✔ Generated ulid has valid characters
✔ Generated ulids are unique
✔ Generated ulid is uppercase by default
✔ Generated ulid can be lowercase
✔ Generated ulid parts are correct
✔ To string method returns expected value
✔ From string with valid ulid
✔ From string with lowercase ulid
✔ From string with invalid ulid throws exception
URI
✔ From string valid uri
✔ From string without query and fragment
✔ From string without schema
✔ From string without path
✔ From string invalid uri
✔ To string
✔ From string with port
✔ From string with credentials
✔ From string without credentials
FAILURES!
Tests: 97, Assertions: 166, Failures: 7.
Error: Process completed with exit code 1.
It's supposed to create the files in the environment temp directory
I've been working on my tests for an hour and it works on my machine but when I try to put it in github actions, it stops and it can't create any files for mocking.
I've no idea how to allow my action to write on github.
name: PHP Composer
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate composer.json and composer.lock
run: composer validate --strict
- name: Cache Composer packages
id: composer-cache
uses: actions/cache@v3
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
- name: Install dependencies
run: composer install --prefer-dist --no-progress
# Add a test script to composer.json, for instance: "test": "vendor/bin/phpunit"
# Docs: https://getcomposer./doc/articles/scripts.md
- name: Run test suite
run: ./vendor/bin/phpunit
Here's my github action file
PHPUnit 11.5.4 by Sebastian Bergmann and contributors.
Runtime: PHP 8.4.3
Configuration: /home/runner/work/archers-framework/archers-framework/phpunit.xml
..........FF..F..........................FF..FF.................. 65 / 97 ( 67%)
................................ 97 / 97 (100%)
Time: 00:00.072, Memory: 10.00 MB
Authority (Tests\ArchersFramework\Http\Authority)
✔ Valid authority string
✔ Authority string without credentials
✔ Authority string without port
✔ Authority string without credentials and port
✔ Invalid authority string
✔ Authority with credentials only
✔ Authority to string
Container
✔ Get returns same instance for singleton
✔ Get returns new instance for factory
✔ Instance returns same object
✔ Autowires dependencies
✔ Throws exception for not autowireable class
✔ Inject attribute overrides default
✔ Throws exception for missing type hint
✔ Throws exception for unresolvable scalar type
✔ Handles nullable parameters
✔ Detects circular dependency
Controller Discovery (ArchersFramework\Tests\Router\Discovery\ControllerDiscovery)
✘ Discover controllers in windows path
│
│ Failed asserting that an array contains 'App\Controllers\WindowsTestController'.
│
│ /home/runner/work/archers-framework/archers-framework/tests/Router/Discovery/ControllerDiscoveryTest.php:85
│ /home/runner/work/archers-framework/archers-framework/vendor/bin/phpunit:122
│
✘ Discover controllers in linux path
│
│ Failed asserting that an array contains 'App\Controllers\LinuxTestController'.
│
│ /home/runner/work/archers-framework/archers-framework/tests/Router/Discovery/ControllerDiscoveryTest.php:98
│ /home/runner/work/archers-framework/archers-framework/vendor/bin/phpunit:122
│
✔ Ignores non php files
✔ Ignores php files with wrong extension
✘ Handles nested directories
│
│ Failed asserting that an array contains 'App\Controllers\Nested\DeepController'.
│
│ /home/runner/work/archers-framework/archers-framework/tests/Router/Discovery/ControllerDiscoveryTest.php:137
│ /home/runner/work/archers-framework/archers-framework/vendor/bin/phpunit:122
│
✘ Handles mixed directory separators
│
│ Failed asserting that an array contains 'App\Controllers\Mixed\PathController'.
│
│ /home/runner/work/archers-framework/archers-framework/tests/Router/Discovery/ControllerDiscoveryTest.php:150
│ /home/runner/work/archers-framework/archers-framework/vendor/bin/phpunit:122
│
✔ Handles empty directory gracefully
Glob Recursive (Tests\ArchersFramework\GlobRecursive)
✘ Glob recursive finds files
│
│ Failed asserting that actual size 0 matches expected size 2.
│
│ /home/runner/work/archers-framework/archers-framework/tests/GlobRecursiveTest.php:53
│
✘ Glob recursive ignores non matching files
│
│ Failed asserting that actual size 0 matches expected size 1.
│
│ /home/runner/work/archers-framework/archers-framework/tests/GlobRecursiveTest.php:62
│
✔ Glob recursive handles empty directory
✔ Glob recursive with no matches
✘ Glob recursive handles complex directory structures
│
│ Failed asserting that actual size 0 matches expected size 3.
│
│ /home/runner/work/archers-framework/archers-framework/tests/GlobRecursiveTest.php:89
│
Header Collection (Tests\ArchersFramework\Http\HeaderCollection)
✔ Constructor initializes headers
✔ Get returns null if header does not exist
✔ Add adds new header value
✔ Set replaces existing header values
✔ Delete removes header
✔ Delete does nothing if header does not exist
✔ Get all returns all headers
✔ Headers are case insensitive
Path (ArchersFramework\Tests\Utilities\Path)
✔ Path joins multiple segments
✔ Path normalizes slashes
✔ Path trims leading and trailing slashes
✔ Empty path returns empty string
✔ Single segment path
✔ Path with mixed separators
✔ Windows absolute path
✔ Windows u n c path
✔ Linux absolute path
✔ Path with empty segments
✔ Path with multiple consecutive slashes
✔ Path with special characters
✔ Path with trailing backslash
Response
✔ Response constructor
✔ Send response
Route Discovery (ArchersFramework\Tests\Router\Discovery\RouteDiscovery)
✔ Discover routes from controller
✔ Discover routes with prefix from route collection
✔ Discover no routes
✔ Discover invalid controller class
✔ Discover routes with multiple controllers
Router (ArchersFramework\Tests\Router\Router)
✔ Dispatch returns response for valid route
✔ Dispatch handles parameterized route
✔ Dispatch throws not found for invalid route
✔ Dispatch throws method not allowed
✔ Resolve parameters returns parameters
✔ Resolve parameters returns null for mismatch
Template (ArchersFramework\Tests\Router\Template)
✔ Constructor parses valid template string
✔ Constructor defaults type to string
✔ Constructor throws exception for invalid template
✔ Is value valid returns true for valid int
✔ Is value valid returns false for invalid int
✔ Is value valid returns true for valid float
✔ Is value valid returns false for invalid float
✔ Is value valid returns true for boolean
✔ Is value valid returns false for invalid boolean
✔ Is value valid returns true for string
✔ Get processed value returns int
✔ Get processed value returns float
✔ Get processed value returns bool
✔ Get processed value returns string
✔ Get processed value throws exception for invalid value
ULID (Tests\ArchersFramework\Utilities\ULID)
✔ Generated ulid has correct length
✔ Generated ulid has valid characters
✔ Generated ulids are unique
✔ Generated ulid is uppercase by default
✔ Generated ulid can be lowercase
✔ Generated ulid parts are correct
✔ To string method returns expected value
✔ From string with valid ulid
✔ From string with lowercase ulid
✔ From string with invalid ulid throws exception
URI
✔ From string valid uri
✔ From string without query and fragment
✔ From string without schema
✔ From string without path
✔ From string invalid uri
✔ To string
✔ From string with port
✔ From string with credentials
✔ From string without credentials
FAILURES!
Tests: 97, Assertions: 166, Failures: 7.
Error: Process completed with exit code 1.
It's supposed to create the files in the environment temp directory
Share Improve this question edited Feb 1 at 10:18 Ugo Brocard asked Jan 30 at 20:47 Ugo BrocardUgo Brocard 12 bronze badges 6 | Show 1 more comment1 Answer
Reset to default 0It was related to my code. Thanks to @Azeem for his responses :)
The problem was that GitHub Action uses ":" as PATH_SEPARATOR
and I was only handling "/".
本文标签: testingGitHub Actions Can39t Create Files For Mocking in PHPUnitStack Overflow
版权声明:本文标题:testing - GitHub Actions Can't Create Files For Mocking in PHPUnit - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741936637a2405894.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
contents: read
. See Defining access for theGITHUB_TOKEN
permissions. – Azeem Commented Jan 31 at 8:12ls
command. – Azeem Commented Jan 31 at 17:12