PHPUnit 5.7.13& Laravel 5.4.12

时间:2017-02-16 14:15:49

标签: laravel phpunit

美好的一天,

我正在尝试使用phpunit 5.7.13运行我的laravel 5.4.12测试。当我故意发出语法错误时,phpunit将无法按预期继续。但是,一旦语法错误得到纠正,phpunit就会执行,只需在命令行中说“it works”即可。当我添加故意失败的测试时,它不会显示该错误。

在我的composer.json上,我将phpunit的必需-dev放到5.7。

我在Windows机器上运行php 5.6.15。

phpunit和laravel之间是否存在任何不兼容性?我尝试在一个带有旧版laravel的项目上运行phpunit,并设法运行所有测试。

1 个答案:

答案 0 :(得分:0)

Laravel 5.2.41 phpunit.xml(phpunit可以使用的旧项目)

var pendingWork = {};
var workId = 0;
var worker = new Worker("path/to/web/worker.js");
worker.addEventListener("message", function(e) {
    // Worker has finished some work, resolve the Deferred
    var work = pendingWork[e.data.id];
    if (!work) {
        console.error("Got result for work ID " + e.data.id + " but no pending entry for it was found.");
    } else {
        if (e.data.success) {
            work.resolve(e.data.result);
        } else {
            work.reject(e.data.error);
        }
        delete pendingWork[e.data.id];
    }
});

function longrunning(info) {
    return new Promise(function(resolve, reject) {
        // Get an identifier for this work
        var id = ++workid;
        pendingWork[id] = {resolve: resolve, reject: reject};
        worker.postMessage({id: id, info: info});
    });
}

这使得phpunit进入子目录并运行每一次测试。

Laravel 5.4.12 phpunit.xml(phpunit不运行测试的新项目)

<testsuites>
    <testsuite name="Application Test Suite">
        <directory suffix="Test.php">./tests</directory>
    </testsuite>
</testsuites>

Phpunit不会进入./tests/Feature的子目录。 我需要添加&#34; / *&#34;这样做。

为什么它只是进入以前版本的laravel中的子目录,我仍然可以解决这个问题。