c'est ma configuration / base de données si je peux obtenir une réponse rapide
namespace Tests\Feature; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\DatabaseMigrations; use Tests\TestCase; class ThreadTest extends TestCase { use DatabaseMigrations ; public function a_user_can_browse_threads() { $thread=factory('App\Thread')->create(); $response = $this->get('/threads'); $response->assertSee($thread->title); }; }
... c'est le phpunit.ml .....
<testsuite name="Feature"> <directory suffix="Test.php">./tests/Feature</directory> </testsuite> </testsuites> <filter> <whitelist processUncoveredFilesFromWhitelist="true"> <directory suffix=".php">./app</directory> </whitelist> </filter> <php> <server name="APP_ENV" value="testing"/> <server name="DB_CONNECTION" value="sqlite"/> <server name="DB_DATABASE" value=":memory:"/> <server name="BCRYPT_ROUNDS" value="4"/> <server name="CACHE_DRIVER" value="array"/> <server name="MAIL_DRIVER" value="array"/> <server name="QUEUE_CONNECTION" value="sync"/> <server name="SESSION_DRIVER" value="array"/> </php>
voici le test.php a créé database.sqlite pls déjà ce qui me manque ici suis confus
'connections' => [ 'sqlite' => [ 'driver' => 'sqlite', 'url' => env('DATABASE_URL'), 'database' => env('DB_DATABASE', database_path('database.sqlite')), 'prefix' => '', 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), ]
3 Réponses :
Avez-vous parcouru la documentation à ce sujet ?
Les tests sont des méthodes publiques nommées test *.
Essayez d'utiliser ce qui suit:
// This won't run by itself public function fooBar() { $foo = factory(\App\Foo::class)->create(); $this->assertDatabaseHas('foos', [ 'id' => $foo->id ]); return $foo; } // This will public function testFoo() { $bar = $this->fooBar(); // Use the information in your test }
Vous pouvez toujours écrire une fonction pas nommée test * code > et en consommer un autre.
public function testUserCanBrowseThreads() // <-- note the camelCase { $thread = factory(\App\Thread::class)->create(); $response = $this->get('/threads'); $response->assertStatus(200); // <-- did you view the thread? $response->assertSee($value); //<-- whatever you want to look for }
Vous devez commencer le nom de votre méthode de test par test
ou ajouter une annotation @test
dans un docblock pour la méthode:
public function test_a_user_can_browse_threads() { // Starting the tests name with 'test' } public function testUserCanBrowseThreads() { // Starting the tests name with 'test' in another format } /** * @test */ public function a_user_can_browse_threads() { // Using the @test annotation }
Je me trompe peut-être ici, mais les noms des tests ne sont-ils pas censés être camelCase? Peut-être juste une chose préférentielle?
Apprendre quelque chose de nouveau chaque jour! +1 pour le pourboire.
semble probablement plus joli dans camelCase :)
"ça ne marche pas" ... merci mais oui "ça marche", réessayer
l'ont résolu
./vendor/bin/phpunit a fait l'affaire. L'appel de phpunit direct ne fonctionne pas pour la plupart des dernières versions de laravel
il ne sait pas que la méthode est une méthode de test très probablement
pls pouvez-vous être plus élaboré