我的测试目录的目录结构是这样的:
/tests /Traits RegistersUsers.PHP TestCase.PHP UserTest.PHP
我通过添加这个命名空间声明命名为TestCase.PHP和UserTest.PHP:
namespace MyappTests;
我已经命名为RegistersUsers.PHP,如下所示:
namespace MyappTests\Traits;
我的UserTest看起来像这样,使用命名空间和使用声明,以便我可以利用RegistersUsers.
<?PHPnamespace MyappTests;use MyappTests\Traits\RegistersUsers;class UserTest extends TestCase{ use RegistersUsers; // ... rest of the class
但是,当我运行测试,PHPUnit死亡与致命的错误:
Trait ‘MyappTests\Traits\RegistersUsers’ not found in /home/vagrant/demo-app-net/tests/UserTest.PHP on line 9
据我所知,我的命名空间是正确的,我的特质应该被找到.我已经和这个圈子在一起了,似乎没有弄清楚.
我猜想在traits文件夹中具有特质,你的自动加载机不再考虑特质.为了纠正这个问题,你应该打开composer.Json,找到autoload-dev的部分,并将其更改为如下所示的内容:
"autoload-dev": { "classmap": [ "tests/TestCase.PHP","tests/Traits/" ]},
这应该会将您在该文件夹中的任何特征添加到autloader.
编辑
评论中提出了一些其他想法.如果要保持正确的文件夹/命名空间结构,使用psr-4自动加载而不是维护类映射是个好主意.
"autoload-dev": { "psr-4": { "MyappTests\": "tests/" }},
而且,当扩展TestCase时,它不是将逻辑注册在用户注册用户进行测试中,而是引入一个帮助方法以作为某个用户登录.你会这样使用…
$user = User::find($ID);$this->be($user);总结
以上是内存溢出为你收集整理的php – Laravel 5单元测试中没有发现的特征全部内容,希望文章能够帮你解决php – Laravel 5单元测试中没有发现的特征所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)