web-dev-qa-db-fra.com

"Interface Web" pour les tests PHPUnit?

Existe-t-il une simple "interface Web" pour exécuter les suites de tests PHPUnit? c'est-à-dire un script PHP qui exécute le test sur la ligne de commande et génère un résultat HTML bien formaté.

Je développe des applications Web et le flux de travail quotidien bascule généralement entre IDE et le navigateur. J'aimerais que les tests unitaires soient effectués dans le même environnement.

Je cherche quelque chose de très simple et basé sur PHP - je prévois d’entrer dans phpUnderControl (qui a la fonctionnalité que je cherche) mais pas encore. 

46
Pekka 웃

Vous pouvez utiliser phing pour exécuter un PHPUnitTask puis convertir le résultat avec:

  • PHPUnitReport - Cette tâche transforme les rapports XML PHPUnit en HTML à l'aide de XSLT.

Exemple:

<phpunitreport infile="reports/testsuites.xml" 
    format="frames" 
    todir="reports/tests" 
    styledir="/home/phing/etc"/>

Voir phpunit --help pour les différents formats de sortie.

La version 2.3 de PHPUnit contenait un chapitre à ce sujet, mais il existe depuis un certain temps déjà. Vous pourrez peut-être trouver une ancienne copie avec Google quelque part.

Puisque vous mentionnez que ceci est pour phpUnderControl: si vous n'êtes pas fixé, pensez à utiliser Jenkins et http://jenkins-php.org .

Remarque secondaire: sauf s’il s’agit de serveurs CI, la plupart des gens que je connais n’utilisent pas PHPUnit via une interface Web. Ils utilisent simplement la ligne de commande ou leur intégration IDE.

12
Gordon

J'ai récemment découvert Visual PHPUnit qui ressemble à une très très jolie interface pour tous ceux qui ne veulent pas lancer PHPUnit à partir de la ligne de commande:

Visual PHPUnit

Il semble que ce soit la prochaine itération de @ Matt's PHPUnit Test Report

26
edorian

Je ressens votre frustration - je suis moi-même un gars de l'assurance-chômage. Regarder le terminal trop longtemps me fait tourner la tête. J'ai écrit une petite application rapide qui pourrait vous être utile.

Application de test PHPUnit http://mattmueller.me/blog/wp-content/uploads/2010/06/test.png

Vous pouvez le trouver ici: http://mattmueller.me/blog/introducing-phpunit-test-report

A bientôt! Matt

21
Matt

Après plusieurs heures de recherche récemment, la meilleure interface Web que j'ai rencontrée avec PHPUnit était https://github.com/NSinopoli/VisualPHPUnit

18
Motin

Vous pouvez utiliser Jenkins pour exécuter tout type de tâches, y compris des tests PHPUnit. Il peut automatiquement extraire votre application, exécuter les tests, créer un rapport HTML et même vous envoyer un e-mail si la création échoue.

Voici les modèles vous devez configurer Jenkins pour créer un ensemble de rapports et de statistiques intéressants à partir de votre projet.

7
Tom

Ok, vous avez dit que vous préféreriez une solution IDE indépendante, mais juste pour que vous sachiez qu'il existe un plugin récent qui permet d'exécuter PHPUnit simplement dans Eclipse et d'avoir une représentation Nice (comme dans Zend Studio, mais gratuitement).

Voici le lien, le développeur principal répond rapidement aux emails si vous avez un problème:

http://www.phpsrc.org/wiki/

J'ai personnellement testé quelques interfaces web, mais j'ai toujours été trompé (pas vraiment pratique et stable). Mais c'est ton choix.

1
Matthieu Napoli

jframework a également une interface utilisateur agréable pour PHPUnit. Il casse les résultats et affiche la couverture de test sur tous les fichiers et chaque fichier séparément . Il fonctionne à la fois sur le Web et sur les cli, le cli ayant le bénéfice de vider chaque test après son exécution attendez que tout soit fini).

General web output, with code coverage per file

Code coverage report for a single file

1
AbiusX

Je n'ai jamais vu une telle interface Web ... Mais, comme vous dites que vous utilisez toujours votre IDE et votre navigateur Web, pourquoi ne pas penser autrement?

c’est-à-dire qu’une solution possible consisterait à lancer les tests unittests à partir de votre IDE; -)
Ce qui signifie que vous devriez pouvoir cliquer sur les tests ayant échoué pour "accéder" à la méthode de test ou à la raison qui a entraîné l'échec du test, par exemple.


Dans le monde PHP + PHPUnit, je sais que Zend Studio fait cela - oui, ce n’est pas gratuit, malheureusement ;-(


En utilisant Eclipse PDT, une solution consisterait à enregistrer PHPUnit en tant qu'outil externe (voir ou par exemple cet article de blog: Utiliser PHPUnit avec Eclipse PDT ) - mais ce n'est pas très sexy, et vous ne pouvez pas cliquer sur les résultats sauter les méthodes/tests ...

Une autre solution serait de développer un plugin pour intégrer PHPUnit dans Eclipse PDT (comme cela a été fait pour Zend Studio, je suppose) - A phpunit4Eclipse a été créé il y a longtemps, mais ce n'est qu'un début et n'a pas eu beaucoup de succès, donc l'auteur n'a pas travaillé dessus après avoir publié ça ...

1
Pascal MARTIN

Si vous ne vous souciez pas de reformater la sortie et que vous voulez juste lancer PHPUnit depuis une page Web, vous pouvez le faire avec du code PHP comme celui-ci:

<pre>
<?php 
$argv[0] = "phpunit.phar";
$argv[1] = '--bootstrap';
$argv[2] = 'src/load.php';
$argv[3] = "tests/MoneyTest";
$_SERVER['argv'] = $argv;
include 'phpunit.phar';
?>
</pre>

Le fichier src/load.php est juste un tas d'inclusions pour inclure les classes. La sortie ressemble alors à ceci:

#!/usr/bin/env php
PHPUnit 4.1.2 by Sebastian Bergmann.

........................

Time: 122 ms, Memory: 3.25Mb

OK (24 tests, 43 assertions)

Ignorez simplement cette première ligne et vous pourrez voir les résultats.

Je suis choqué que PHPUnit n'inclue pas un moyen simple de faire cela. Certaines classes peuvent dépendre du serveur Web. Est-ce que nous ne les testons pas? Certains sites ont chargé vos fichiers et n'autorisent pas les exécutions en ligne de commande.

0
Charles

Vous pouvez toujours utiliser le Maven pour PHP à partir duquel vous pouvez utiliser les rapports surefire (site mvn) . Plus d'infos ici: http://www.php-maven.org

0
Softy