Polecenie Unit laravel zwraca błąd

0

Dopiero się biorę za testy jednostkowe unit i na samym początku dostaje taki błąd przy wykonywaniu polecenia

./vendor/bin/phpunit tests/ExaTest.php

Dostawałem w konsoli coś takiego

class ExaTest extends PHPUnit_Framework_TestCase {
    public function testGreetings()
    {
        $greetings = 'Hello Wor';
        $this->assertTrue('Hello Wor', $greeting);
    }
 
}PHP Fatal error:  Uncaught PHPUnit\Runner\Exception: Class 'tests/ExaTest' could not be found in 'tests/ExaTest.php'. in /var/www/html/aplikacja??/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php:102
Stack trace:
#0 /var/www/html/aplikacja??/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php(130): PHPUnit\Runner\StandardTestSuiteLoader->load('tests/ExaTest', 'tests/ExaTest.p...')                                                                                                    
#1 /var/www/html/aplikacja??/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php(73): PHPUnit\Runner\BaseTestRunner->loadSuiteClass('tests/ExaTest', '')                                                                                                                      
#2 /var/www/html/aplikacja??/vendor/phpunit/phpunit/src/TextUI/Command.php(169): PHPUnit\Runner\BaseTestRunner->getTest('tests/ExaTest', '', Array)                                                                                                                            
#3 /var/www/html/aplikacja??/vendor/phpunit/phpunit/src/TextUI/Command.php(148): PHPUnit\TextUI\Command->run(Array, true)                                                                                                                                                      
#4 /var/www/html/aplikacja??/vendor/phpunit/phpunit/phpunit(53): PHPUnit\TextUI\Command::main()                                                                                                                                                                                
#5 {main}                                                                                                                                                                                                                                                                      
  thrown in /var/www/html/aplikacja??/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php on line 102     

Więc na jakimś forum dostałem informacje, że trzeba zainstalowac młądszą wersje unit więc zainstalowałem wersje
6.0 a miałem
PHPUnit 6.5.13 by Sebastian Bergmann and contributors.a miałem

./vendor/bin/phpunit /var/www/html/aplikacja??/tests/ExaTest.php

Moja wersja laravela to Laravel Framework 5.5.45
moja wersja php to 7.0
A system to debian 9.5

0

Co się dzieje gdy wpisujesz samo ./vendor/bin/phpunit?

0

Wtedy jest wszystko dobrze.

PHPUnit 6.0.0 by Sebastian Bergmann and contributors.

......                                                              6 / 6 (100%)

Time: 125 ms, Memory: 10.00MB

OK (6 tests, 6 assertions)

0

Ok, to spróbuj odpalić test wpisując ./vendor/bin/phpunit ExaTest.

0
Cannot open file "ExaTest.php".

0

Hm, no to pozostały takie warianty:

  • ./vendor/bin/phpunit tests/ExaTest
  • ./vendor/bin/phpunit Tests/ExaTest
  • ./vendor/bin/phpunit Test/ExaTest

Przed wszystkim spróbuj uruchomić composer dump (odświeży to plik autoload.php służący do automatycznego wczytywania klas PHP) + tę twoją klasę ExaTest masz umieszczoną w prawidłowym namespace (tzn. czy ExaTest.php zaczyna się od namespace Test; lub namespace Tests;)?

0

Teraz miałem taki głupi błąd bo nie miałem znaków php na początku i na końcu
I teraz dałem
namespace Tests;
I dostaje taki błąd.

Class 'tests/ExaTest' could not be found in '/var/www/html/aplikacja??/tests/ExaTest.php'.

0

Podeślij zawartość całego tego Twojego ExaTest.php - czasem ten błąd pojawia się także w sytuacji, gdy plik zawiera jakieś nieprawidłowe znaki.

0
<?php
namespace Tests;
class ExaTest  {
    public function testGreetings()
    {
        $greetings = 'Hello';
        $this->assertTrue('Hello', $greetings);
    }
}

?>
0

No teraz to brakuje Ci na pewno extends PHPUnit_Framework_TestCase :-P

0
Patryk27 napisał(a):

No teraz to brakuje Ci na pewno extends PHPUnit_Framework_TestCase :-P

Właśnie to usunąłem bo zwracało mi błąd

PHP Fatal error:  Class 'Tests\PHPUnit_Framework_TestCase' not found in /var/www/html/aplikacja??/tests/ExaTest.php on line 3

0

extends \PHPUnit_Framework_TestCase w takim razie

0

To samo.

0

A właśnie czy to jest jaką lokalna klasa Bo jak tak to w tym katalogu nie ma jej a jak nie może trzeba dodać dokładną ściężkę.

0

A teraz to jest dziwne bo jak dałem inny kod

<?php

namespace Tests\Feature;

use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithoutMiddleware;

class ETest extends TestCase
{
    use RefreshDatabase;

    /**
     * A basic functional test example.
     *
     * @return void
     */
    public function testBasicExample()
    {
        $response = $this->get('/');

        // ...
    }
}

To teraz to chyba nie jest wina źle zainstalowanego phpunita tylko kodu bo dla tego kodu znajduje błędy np. takie

PHPUnit 6.0.0 by Sebastian Bergmann and contributors.

E                                                                   1 / 1 (100%)

Time: 137 ms, Memory: 12.00MB

There was 1 error:

1) Tests\Feature\ETest::testBasicExample
Illuminate\Database\QueryException: SQLSTATE[HY000] [1049] Unknown database 'leki_ol' (SQL: SHOW FULL TABLES WHERE table_type = 'BASE TABLE')

/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Connection.php:624
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Connection.php:333
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php:75
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php:48
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php:65
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php:39
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:29
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:87
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:31
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Container/Container.php:549
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Console/Command.php:183
/var/www/html/aplikacja??/vendor/symfony/console/Command/Command.php:255
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Console/Command.php:170
/var/www/html/aplikacja??/vendor/symfony/console/Application.php:960
/var/www/html/aplikacja??/vendor/symfony/console/Application.php:255
/var/www/html/aplikacja??/vendor/symfony/console/Application.php:148
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Console/Application.php:88
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Console/Application.php:177
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:249
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php:18
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:53
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:18
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:104
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:71

Caused by
PDOException: SQLSTATE[HY000] [1049] Unknown database 'leki_ol'

/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:43
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php:24
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php:183
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Connection.php:915
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Connection.php:940
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Connection.php:399
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Connection.php:325
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Connection.php:657
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Connection.php:624
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Connection.php:333
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php:75
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php:48
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php:65
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php:39
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:29
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:87
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:31
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Container/Container.php:549
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Console/Command.php:183
/var/www/html/aplikacja??/vendor/symfony/console/Command/Command.php:255
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Console/Command.php:170
/var/www/html/aplikacja??/vendor/symfony/console/Application.php:960
/var/www/html/aplikacja??/vendor/symfony/console/Application.php:255
/var/www/html/aplikacja??/vendor/symfony/console/Application.php:148
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Console/Application.php:88
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Console/Application.php:177
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:249
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php:18
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:53
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:18
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:104
/var/www/html/aplikacja??/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:71

Dla takiego kodu taki wynik

<?php

namespace Tests\Feature;

use Tests\TestCase;
//use Illuminate\Foundation\Testing\RefreshDatabase;
//use Illuminate\Foundation\Testing\WithoutMiddleware;

class ETest extends TestCase
{
//    use RefreshDatabase;

    /**
     * A basic functional test example.
     *
     * @return void
     */
    public function testBasicExample()
    {
//        $response = $this->get('/');

        // ...
    }
}

No i np taki wynik


R                                                                   1 / 1 (100%)

Time: 78 ms, Memory: 10.00MB

OK, but incomplete, skipped, or risky tests!
Tests: 1, Assertions: 0, Risky: 1.


1 użytkowników online, w tym zalogowanych: 0, gości: 1