当前位置: 首页 > 知识库问答 >
问题:

找不到PHPUnit类,但已正确包含

楚瑞
2023-03-14

我使用phpUnit与cakephp进行测试,但当我试图运行一些测试类抛出一个致命错误,但这个类插入正确,甚至没有被指控丢失文件错误的PHPStorm。

执行测试用例的命令:

C:\xampp\htdocs\PROJETOS\购物\供应商\phpUnit

致命错误:

致命错误:在第12行的C:\xampp\htdocs\PROJET OS\Shopping\tests\TestCase\Model\Table\userstablest.php中找不到类“Cake\TestSuite\TestCase”

测试用例:

<?php
namespace App\Test\TestCase\Model\Table;

use App\Model\Table\UsersTable;
use Cake\ORM\TableRegistry;
use Cake\TestSuite\TestCase;

/**
 * App\Model\Table\UsersTable Test Case
 */
class UsersTableTest extends TestCase
{

    /**
     * Fixtures
     *
     * @var array
     */
    public $fixtures = [
        'app.users',
        'app.user_types',
        'app.bookings',
        'app.stores'
    ];

    /**
     * setUp method
     *
     * @return void
     */
    public function setUp()
    {
        parent::setUp();
        $config = TableRegistry::exists('Users') ? [] : ['className' => 'App\Model\Table\UsersTable'];
        $this->Users = TableRegistry::get('Users', $config);
    }

    /**
     * tearDown method
     *
     * @return void
     */
    public function tearDown()
    {
        unset($this->Users);

        parent::tearDown();
    }

    /**
     * Test initialize method
     *
     * @return void
     */
    public function testInitialize()
    {
        $this->markTestIncomplete('Not implemented yet.');
    }

    /**
     * Test validationDefault method
     *
     * @return void
     */
    // Método que deverá testar o método "validationDefault()" de "UsersTable",
    // mas como e quando este método será chamado?
    // A ferramenta seleciona o método a ser executado
    public function testValidationDefault()
    {
        $this->markTestIncomplete('Not implemented yet.');
    }

    /**
     * Test buildRules method
     *
     * @return void
     */
    public function testBuildRules()
    {
        $this->markTestIncomplete('Not implemented yet.');
    }

    public function testFindUserById(){
        $query = $this->Users->find('userById', [
            'conditions' => ['Users.id' => 900000],
            'fields' => ['Users.id', 'Users.email', 'Users.password',
                'Users.username', 'Users.user_type_id', 'Users.created',
                'Users.modified']
        ]);
        $this->assertInstanceOf('Cake\ORM\Query', $query);
        $result = $query->hydrate(false)->toArray();

        $expected = [
            [
                'id' => 900000,
                'email' => 'usuariocomum1@gmail.com',
                'password' => 'usuariocomum1senha',
                'username' => 'usuariocomum1username',
                'user_type_id' => 900000,
                'created' => '2015-07-17 18:46:47',
                'modified' => '2015-07-17 18:46:47'
            ]
        ];

        $this->assertEquals($expected, $result);
    }
}

文件夹:[ProjectName]/tests/中有2个文件夹Fixture和TestCase,以及1个文件bootstrap.php

我的文件夹结构:

配置和测试文件夹:

PHPUnit文件夹(在供应商文件夹内(与作曲家一起安装))

供应商文件夹中的bin文件夹

当我使用composer删除phpunit时,请遵循以下答案:如何从composer中删除未使用的依赖项?仍然有一个文件夹phpunit与一个奇怪的文件(它是确定的?)

注意:我使用的是CakePHP3.0.11和PHPHPHUnit 4.8

共有1个答案

酆翔宇
2023-03-14

根据CakePHP文档,您应该运行vendor/bin文件夹中的phpunit可执行文件(CakePHP应用程序中有一个phpunit.xml.dist文件,因此您应该从根文件夹运行可执行文件):

C:\...\Shopping> vendor\bin\phpunit tests\TestCase\Model\Table\UsersTableTest.php

如果您没有这样的可执行文件,您可能有一个“坏”的phpUnit安装。您应该删除它(和供应商/phpUnit文件夹),并使用以下方法重新安装它:

php composer.phar require phpunit/phpunit:4.8
 类似资料:
  • 我写了phpUnit测试。我使用以下命令运行它:

  • 我是PHPUnit和单元测试的新手,所以我通过作曲家安装了PHPUnit和phar,一切都很好,直到我尝试开始我的简单测试。我使用PhpStorm,我可以看到所有的类都是自动加载的,但是当我试图开始我的测试时,我得到了一个错误: 我不明白他为什么要在高于PHPUnit的文件夹中查找它? 我试图在composer中配置自动加载部分。json和检查phpunit中的设置。xml,但什么都不起作用。 加

  • Log4j正在查找我的配置,因为一旦我删除它,我就会收到一条错误消息,说它找不到配置,但是它的属性在登录时不会反映出来。 log4j2。属性: Test.java: 输出: 如您所见,当记录器设置为INFO时,它将返回级别为ERROR,并且时间格式包括毫秒,即使它已被删除。 配置文件取自log4j网站,只做了一些小改动(上面提到的两个,以及) 我使用的是2.8.1版。

  • 请,任何人都可以帮助我找到正确的XPath来检索日期值“07/05/2018 04:45” 我试过但没有成功: /输入[@type=“text”]@值 //*[@id="start Date"]

  • 没有图像很难描述: 编辑:(我不能发布一个图像,直到我有更多的声誉)。 jar存在于外部库中,包包含类('org.roblectric.AndroidManifest')。导入语句在“robolectric”之前是灰色的,但在“AndroidManifest”上是红色的。当我点击包(robolectric)时,它会将我带到正确的包,其中显然包含该类。 这是应用程序中唯一的机器人库,因此它不是在使用

  • 问题内容: 我试图用cmake建立一个项目。这个项目正在使用Java等。问题是在代码处 我收到以下错误: 虽然 输出 怎么会?该错误的原因是什么? 问题答案: 如果您使用的是Linux操作系统,则必须将Java home设置为export