我的项目有这个文件结构:
- Root
-- /src
-- /tests
我已将测试放在tests
目录上。
当所有包含的文件都在根文件夹中时,一切正常,但是当我想将我的文件放在src中时,我得到错误:
警告:require(../ src / Task1.php):无法打开流:第2行的E:\ xampp \ htdocs \ CodewarsPHP \ tests \ Task1Test.php中没有此类文件或目录
致命错误:require():无法打开所需的' ../ src / Task1.php' (include_path =' E:\ xampp \ php \ PEAR')在2行的E:\ xampp \ htdocs \ CodewarsPHP \ tests \ Task1Test.php
我的测试文件:
<?php
require '../src/Task1.php';
class Task1Test extends PHPUnit_Framework_TestCase
{
public function testTask1(){
$this->assertEquals([1,1,1,3,5,9],fib([1,1,1],6));
}
}
答案 0 :(得分:0)
您没有告诉我们您如何调用/运行phpunit,但我猜测该phar文件与您的测试脚本不在同一个文件夹中。
然后,当你做
require '../src/Task1.php';
在执行时,PHP将解析相对于phpunit脚本的Task1.php 的位置,而不是相对于 Task1Test.php 的位置。
您可以使用__DIR__
,它在运行时被解析为使用常量的文件所在的目录,然后使用require
文件的绝对路径:
require __DIR__ . '../src/Task1.php';