6
votes

Comment créer un cas PHP-Unittest pour les normes PHP_CODESNIFFER?

J'ai créé mes propres normes de code de code de code. Ils fonctionnent bien. Maintenant, je veux tester des règles de code de code à l'aide de PHP Unittest. PHPCODESNIFFER a déjà leur cadre pour le cas de test PHPUnit.

Ainsi, en utilisant cela, j'ai étendu leur abstractSniffunittest code> et classe de test unitaire à l'emplacement Normes / TestRules / Testrages / Tests / Fonction / FonctionUnitTest.php Code> et script sur lequel doit être testé dans Normes / TestRules / Testrules / Testrages / Fonction / Fonction / Code>. P >

Mais quand je vais exécuter le script par commande phpunit Pear \ php \ tests \ allTestS.php code>, il donne une erreur suivante. p>

PHPUnit 3.5.14 by Sebastian Bergmann.

......................................F

Time: 6 seconds, Memory: 10.00Mb

There was 1 failure:

1) TestRules_Tests_Function_FunctionUnitTest::getErrorList
An unexpected exception has been caught: Source file C:/Program Files/PHP/PEAR/PHP/CodeSniffer/Standards/TestRules/Tests/Function/FunctionUnitTest.inc does not exist

C:\Program Files\PHP\PEAR\PHP\tests\Standards\AbstractSniffUnitTest.php:138
C:\Program Files\PHP\PEAR\PHP\tests\TestSuite.php:48

FAILURES!
Tests: 39, Assertions: 146, Failures: 1.

Warning: Deprecated PHPUnit features are being used 2 times!
Use --verbose for more information.


1 commentaires

Veuillez essayer le commutateur - verbose et ajouter la sortie étendue.


3 Réponses :


0
votes

Je vois un espace près de i i nc - assurez-vous que si c'est mal de faute et corrigez-le, cela devrait fonctionner. Autre que cela, je ne vois aucun problème.

changer:

C: / PROGRAMMES / PHP / PEAR / PHP / CODESNIFFER / TESTRULES / TESTRULES / TESTRES / FONCTION / FONCTIONNITTEST.I NC

à

C: / PROGRAMMES / PHP / PEAR / PHP / CODESNIFFER / TESTRULES / TESTRULES / TESTRES / FONCTION / FONCTIONNITTESTEST.INC


4 commentaires

J'ai reformaté la question de l'affiche et il n'y avait pas d'espace dans inc . C'était une ligne qui se termine que le navigateur tourne dans un espace. Je soupçonne que cela a été causé par la sélection du texte dans la console.


@David je l'espère, mais je me demande ce qui pourrait causer ce problème, car les deux fichiers sont au même emplacement et Testrules / tests / fonction / fonction / fonctionUntest.php est traité si tel est le cas. , alors il devrait ramasser le fichier testroles / tests / fonction / fonctionnement / fonctionnement .


Merci à vous tous de commenter. Emplacement du fichier réel est C: / PROGRAMMES / PHP / PEAR / PHP / CODESNIFFER / TESTRULES / TESTRULES / TESTRESSE / FUN CTION / FONCTIONNITTE ST.IV Je vous demande également pourquoi ce problème se produit sous forme de dossier.


@ User810130 Pourquoi n'utilisez-vous pas xdebug et voyez comment circuler aller & où / comment il essaie d'ajouter .Inc fichier?



1
votes

Vos fichiers sont vos fichiers dans le haut niveau tests ou codesNIFFER ? Notez que le boîtier de test abstrait que vous extension est dans tests xxx

mais tente d'inclure le fichier de codesNiffer : xxx

Essayez de déplacer vos deux fichiers dans l'autre répertoire.


2 commentaires

Structure du répertoire est la suivante -CodeSnifer - - TestRules --- TestRules ---- Sniff / Fonction / FonctionsNiff.php ---- Tests / Fonction / FonctionUntest.PHP /-FonctionsUnitest.IP / STESTS --TESTS --TESTS /ABSTRONSNIFFUNITTESTEST.PHP /ALLSNIFFS.PHP Y a-t-il des portées avec la structure de répertoire? J'ai suivi la même convention que PHP-CODESNIFFER UNITESTUITE. N'importe quel pointeur?


Si vous avez suivi le modèle défini par les tests de CODESNIFFER, je m'attendrais à ce que cela fonctionne. Je commencerais en ouvrant la classe qui tente d'inclure votre fichier et de voir où il s'attend à ce que le fichier soit. Il est temps de rouler vos manches et de vous salir vos mains. :)



0
votes

Il semble qu'il ait un problème de chemin sur Windows. J'ai testé les cas de test sur Linux, cela fonctionne bien. Lorsque j'ai vérifié le code actuel, il semble que, sur une mappage de fichier du fichier de cas de test au fichier Sniff. Mais sur la fenêtre, après mappée de fichier, le chemin de fichier contient le mélange de Slahes avant et arrière. À cause de cela, il renvoie que "le fichier n'est pas trouvé d'erreur". Les cas de test exécutent une amende sur Linux.


0 commentaires