我有我認爲是一個不常見的問題,但我會嘗試儘可能清楚地解釋。我創建了一個簡單的命令工匠做這個從Artisan命令調用PHPUnit將忽略XML文件
/**
* Execute the console command.
*/
public function handle()
{
$this->info("==> Cleaning up reports and docs...");
$command = new Process("rm -f tests/docs/* && rm -rf test/reports/*");
$command->run();
$this->warn("==> Reports and docs are clean");
$this->info("==> Executing Tests Suite...");
$command = new Process("vendor/bin/phpunit --coverage-html tests/reports --testdox-html tests/docs/reports.html -v --debug");
$command->run();
$this->info($command->getIncrementalOutput());
$this->warn("==> report generated >> test/reports. Documentation generated >> test/docs/reports.html");
}
這可能看起來有點怪,但它實際上是非常有用的,它的覆蓋範圍的支持和其他的東西推出PHPUnit的。問題是,如果我運行這個命令,如php artisan ludo237:full-test
它將完全忽略phpunit.xml
實際上它會顯示和錯誤說MySQL數據庫不存在,即使我已經在我的phpunit.xml
內設置了sqlite連接來說明你可以清楚地看到這是正確的:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="bootstrap/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false">
<testsuites>
<testsuite name="Application Test Suite">
<directory suffix="Test.php">./tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./app</directory>
</whitelist>
</filter>
<php>
<env name="APP_ENV" value="testing"/>
<env name="APP_DEBUG" value="true"/>
<env name="APP_URL" value="http://localhost:8000"/>
<env name="DB_CONNECTION" value="sqlite"/>
<env name="DB_DATABASE" value=":memory:" />
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
<env name="MAIL_DRIVER" value="log"/>
<env name="MAIL_PRETEND" value="true"/>
</php>
</phpunit>
我知道,我可以簡單地創建該命令行bash的別名,實際上這是我目前的熱修復,但在這一點上,我只是好奇,想了解爲什麼當我從artisan命令啓動phpunit命令,忽略了XML文件。
有沒有人有這方面的線索?謝謝!
謝謝for.your的努力,讓我們看看問題是否會有更新 –