我正在尝试制作一个 GitHub Actions 工作流程,它将在我的项目中运行我的所有单元测试。每当我推送到我的 CI-CD 测试分支时,它都会给我一个错误,说它无法读取某个位置 [/app/tests/../.env.test] 的任何环境文件。.env.test 位于我项目的根目录中,所以也许这就是问题所在,但我不知道如何解决。工作流程:
name: CI/PHPUnit
on:
push:
branches:
- CI-CD
jobs:
build-test:
runs-on: ubuntu-latest
steps:
- name: Checkout setup
uses: actions/checkout@v2
- uses: php-actions/composer@v5
with:
php_version: 7.3
php_extensions: bcmath
- name: PHP unit tests with PHPUnit
uses: php-actions/phpunit@v2
with:
configuration: phpunit.xml
但这会给我以下错误:
Run php-actions/phpunit@v2
with:
configuration: phpunit.xml
memory_limit: 256M
version: latest
php_version: latest
test_suffix: Test.php,.phpt
Fatal error: Uncaught Dotenv\Exception\InvalidPathException: Unable to read any of the environment file(s) at [/app/tests/../.env.test]. in /app/vendor/vlucas/phpdotenv/src/Store/FileStore.php:68
Stack trace:
#0 /app/vendor/vlucas/phpdotenv/src/Dotenv.php(222): Dotenv\Store\FileStore->read()
#1 /app/tests/bootstrap.php(14): Dotenv\Dotenv->load()
#2 /app/tests/Unit/UnitTestCase.php(19): require('/app/tests/boot...')
#3 phar:///usr/local/bin/phpunit/phpunit/Framework/TestBuilder.php(76): Ella\Tests\Unit\UnitTestCase->__construct()
#4 phar:///usr/local/bin/phpunit/phpunit/Framework/TestBuilder.php(64): PHPUnit\Framework\TestBuilder->buildTestWithoutData('Ella\\Tests\\Unit...')
#5 phar:///usr/local/bin/phpunit/phpunit/Framework/TestSuite.php(680): PHPUnit\Framework\TestBuilder->build(Object(ReflectionClass), 'testCanAddOrder...')
#6 phar:///usr/local/bin/phpunit/phpunit/Framework/TestSuite.php(193): PHPUnit\Framework\TestSuite->addTestMethod(Object(ReflectionClass), Object(ReflectionMethod))
#7 phar:///usr/local/bin/phpunit/phpunit/Framework/TestSuite.php(281): PHPUnit\Framework\TestSuite->__construct(Object(ReflectionClass))
#8 phar:///usr/local/bin/phpunit/phpunit/Framework/TestSuite.php(377): PHPUnit\Framework\TestSuite->addTestSuite(Object(ReflectionClass))
#9 phar:///usr/local/bin/phpunit/phpunit/Framework/TestSuite.php(394): PHPUnit\Framework\TestSuite->addTestFile('/app/tests/Unit...')
#10 phar:///usr/local/bin/phpunit/phpunit/TextUI/TestSuiteMapper.php(56): PHPUnit\Framework\TestSuite->addTestFiles(Array)
#11 phar:///usr/local/bin/phpunit/phpunit/TextUI/Command.php(304): PHPUnit\TextUI\TestSuiteMapper->map(Object(PHPUnit\TextUI\XmlConfiguration\TestSuiteCollection), '')
#12 phar:///usr/local/bin/phpunit/phpunit/TextUI/Command.php(103): PHPUnit\TextUI\Command->handleArguments(Array)
#13 phar:///usr/local/bin/phpunit/phpunit/TextUI/Command.php(93): PHPUnit\TextUI\Command->run(Array, true)
#14 /usr/local/bin/phpunit(1119): PHPUnit\TextUI\Command::main()
#15 {main}
这是我的配置文件(phpunit.xml):
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
>
<testsuites>
<testsuite name="unit">
<directory suffix=".php">tests/Unit</directory>
</testsuite>
</testsuites>
</phpunit>
如果有人知道解决这个问题,我会很高兴。