我在将文件包含在phpunit测试中时遇到了一些麻烦。例如:当我在PhpStorm中执行以下代码时,将获得预期的输出。
代码:
class NifvalidationTest extends PHPUnit_Framework_TestCase
{
public function test_apiRequest()
{
$result = 1+1;
$this->assertEquals(2, $result);
}
}
输出:
Testing started at 16:58 ...
PHPUnit 5.2.12 by Sebastian Bergmann and contributors.
Time: 120 ms, Memory: 11.50Mb
OK (1 test, 1 assertion)
Process finished with exit code 0
但是,当我需要使用include从另一个类访问方法时,我没有得到预期的输出。仅作为示例,当我执行以下代码时:
class NifvalidationTest extends PHPUnit_Framework_TestCase
{
public function test_apiRequest()
{
include('/../nifvalidation.php');
$result = 1+1;
$this->assertEquals(2, $result);
}
}
我得到这个而不是预期的输出:
Testing started at 17:05 ...
PHPUnit 5.2.12 by Sebastian Bergmann and contributors.
Process finished with exit code 0
关于包含为什么会破坏测试的任何想法?
注意1:在上面的示例中,我不需要包含文件,但是在其他测试中需要。
注意2:文件'nifvalidation.php'的路径正确。
最佳答案
我认为您的包含路径错误。
您的结构可能像这样
父目录
-> nifvalidation.php
->测试文件夹
-> NifvalidationTest.php
代替
include('/../nifvalidation.php')
用
include(dirname(__FILE__)."/../nifvalidation.php");
关于php - 如何在phpunit测试中包含文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37418791/