相关疑难解决方法(0)

@runInSeparateProcess时反序列化错误

我正在实现一个模块,它将提供一个API来处理和管理PHP会话.我正在测试Session\Manager允许用户启动会话,设置ID,获取ID,销毁会话等的实现.我正在使用PHPUnit的@runInSeparateProcess注释在单独的过程中测试此类中的方法.当我使用这个注释时,由于反序列化错误,我得到PHPUnit抛出的异常.当我不使用注释时,测试按预期运行,并且在null不等于false时失败.

这是导致错误的测试.到目前为止还没有实现详细信息,接口的所有方法都存在但不执行任何操作.

class ManagerTest extends PHPUnitTestCase {

    /**
     * Ensures that if the session has not been started yet the sessionExists
     * method returns false.
     *
     * @runInSeparateProcess
     */
    public function testSessionExistsWhenSessionHasNotBeenStarted() {
        $Manager = new \Session\Manager();
        $this->assertFalse($Manager->sessionExists());
    }

}
Run Code Online (Sandbox Code Playgroud)

我能够将问题追溯到以下PHPUnit_Util_PHP::runJob()方法.我正在运行PHPUnit 3.7.5并且runJob被调用的方法是:

/**
 * Runs a single job (PHP code) using a separate PHP process.
 *
 * @param  string                       $job
 * @param  PHPUnit_Framework_TestCase   $test
 * @param  PHPUnit_Framework_TestResult $result
 * @return array|null
 * …
Run Code Online (Sandbox Code Playgroud)

php phpunit

6
推荐指数
1
解决办法
3639
查看次数

标签 统计

php ×1

phpunit ×1