IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Warnings sur tests unitaires


Sujet :

Symfony PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2019
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Warnings sur tests unitaires
    Bonjour,

    Je débute sur Symfony5 depuis 1 mois (et le PHP objet) avec de grandes difficultés....

    J'ai créer une entité Testeur qui contient 3 propriétés (title, introduction, content).
    J'ai par des tests unitaires voulu voir si les getters et setters fonctionnent correctement...

    j'ai créer une classe de test utilise la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php bin/console make:test En choisissant l'option TestCase
    Dans mon fichier de test (Test/TesteurUnitTest.php), j'écris le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    namespace App\Tests;
     
    use App\Entity\Testeur;
    use PHPUnit\Framework\TestCase;
     
     
    class TesteurUnitTest extends TestCase
    {
     
        public function TestIsTrue(): void
        {
            $post = new Testeur();
            $post->setTitle('title')
                ->setIntroduction('introduction')
                ->setContent('content');
     
            $this->assertTrue($post->getTitle() === 'title');
            $this->assertTrue($post->getIntroduction() === 'introduction');
            $this->assertTrue($post->getContent() === 'content');
        }
     
        public function TestIsFalse(): void
        {
            $post = new Testeur();
            $post->setTitle('title')
                ->setIntroduction('introduction')
                ->setContent('content');
     
            $this->assertFalse($post->getTitle() === 'false');
            $this->assertFalse($post->getIntroduction() === 'false');
            $this->assertFalse($post->getContent() === 'false');
        }
     
        public function TestIsEmpty(): void
        {
            $post = new Testeur();
     
            $this->assertEmpty($post->getTitle());
            $this->assertEmpty($post->getIntroduction());
            $this->assertEmpty($post->getContent());
        }
    }
    Quand je fais php bin/phpunit j'ai la réponse No tests found in class "App\Tests\TesteurUnitTest".

    En rajoutant l'annotation /** @ test */ au-dessus de chaque fonction j'ai une erreur qui m'est renvoyée...

    Quelqu'un pourrait m'aider ?

    Merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Points : 582
    Points
    582
    Par défaut
    Salut,

    À mon avis ça vient du fait que les noms de tes méthodes ne commencent pas par "test" mais par "Test" (cf. https://phpunit.readthedocs.io/fr/la...r-phpunit.html).
    Cela dit, si tu utilises l'annotation "@test" ça devrait fonctionne également. Si ce n'est pas le cas, n'hésite pas à partager le message d'erreur dont tu parlais dans ton message.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2019
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Hello Thomas,

    Merci d'avoir pris le temps de me répondre.
    J'ai renommé les fonctions avec des minuscules.

    Le message d'erreur renvoyé :
    Error: Class 'App\Entity\Testeur' not found

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #!/usr/bin/env php
    PHPUnit 6.5.14 by Sebastian Bergmann and contributors.
     
    Testing Project Test Suite
    EEE                                                                 3 / 3 (100%)
     
    Time: 109 ms, Memory: 4.00MB
     
    There were 3 errors:
     
    1) App\Tests\TesteurUnitTest::testIsTrue
    Error: Class 'App\Entity\Testeur' not found
     
    /Applications/MAMP/htdocs/cours/ajax/tests/TesteurUnitTest.php:13
     
    2) App\Tests\TesteurUnitTest::testIsFalse
    Error: Class 'App\Entity\Testeur' not found
     
    /Applications/MAMP/htdocs/cours/ajax/tests/TesteurUnitTest.php:25
     
    3) App\Tests\TesteurUnitTest::testIsEmpty
    Error: Class 'App\Entity\Testeur' not found
     
    /Applications/MAMP/htdocs/cours/ajax/tests/TesteurUnitTest.php:37
     
    ERRORS!
    Tests: 3, Assertions: 0, Errors: 3.
    Par contre ce message est pour moi incorrect car la classe Entity/Testeur existe bien
    le make:migration & d:m:m ont étés faits...

    Le contenu de Testeur.php ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    <?php
     
    namespace App\Entity;
     
    use App\Repository\TesteurRepository;
    use Doctrine\ORM\Mapping as ORM;
     
    /**
     * @ORM\Entity(repositoryClass=TesteurRepository::class)
     */
    class Testeur
    {
        /**
         * @ORM\Id
         * @ORM\GeneratedValue
         * @ORM\Column(type="integer")
         */
        private $id;
     
        /**
         * @ORM\Column(type="string", length=255)
         */
        private $title;
     
        /**
         * @ORM\Column(type="string", length=255)
         */
        private $introduction;
     
        /**
         * @ORM\Column(type="string", length=255)
         */
        private $Content;
     
        public function getId(): ?int
        {
            return $this->id;
        }
     
        public function getTitle(): ?string
        {
            return $this->title;
        }
     
        public function setTitle(string $title): self
        {
            $this->title = $title;
     
            return $this;
        }
     
        public function getIntroduction(): ?string
        {
            return $this->introduction;
        }
     
        public function setIntroduction(string $introduction): self
        {
            $this->introduction = $introduction;
     
            return $this;
        }
     
        public function getContent(): ?string
        {
            return $this->Content;
        }
     
        public function setContent(string $Content): self
        {
            $this->Content = $Content;
     
            return $this;
        }
    }
    Merci d'avance pour ton aide

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Points : 582
    Points
    582
    Par défaut
    À première vue c'est plus un soucis de config et d'autoload.

    Est-ce que tu as bien un fichier bootstrap.php à la racine du dossier "tests" ?
    Est-ce que tu as un fichier phpunit.xml.dist à la racine de ton projet ? https://symfony.com/doc/current/test...-configuration
    Est-ce que dans le fichier phpunit.xml.dist, le "bootstrap" de phpunit pointe vers le fichier tests/bootstrap.php ?

Discussions similaires

  1. Erreur sur test unitaire
    Par montis dans le forum AngularJS
    Réponses: 1
    Dernier message: 24/09/2017, 10h11
  2. Réponses: 4
    Dernier message: 21/11/2009, 20h39
  3. Tests unitaires sur un ETL
    Par ygrim dans le forum Approche théorique du décisionnel
    Réponses: 2
    Dernier message: 11/06/2008, 14h41
  4. Tutoriel sur test Unitaire en PHP
    Par lekunfry dans le forum Langage
    Réponses: 2
    Dernier message: 12/10/2007, 11h48
  5. Tests unitaires avec vbUnit sur des contrôles utilisateurs
    Par Patrick Mortas dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 07/09/2006, 18h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo