reporter_documentation.html.svn-base

来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 535 行 · 第 1/2 页

SVN-BASE
535
字号
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Documentation SimpleTest : le rapporteur de test</title><link rel="stylesheet" type="text/css" href="docs.css" title="Styles"></head><body><div class="menu_back"><div class="menu"><a href="index.html">SimpleTest</a>                |                <a href="overview.html">Overview</a>                |                <a href="unit_test_documentation.html">Unit tester</a>                |                <a href="group_test_documentation.html">Group tests</a>                |                <a href="mock_objects_documentation.html">Mock objects</a>                |                <a href="partial_mocks_documentation.html">Partial mocks</a>                |                <a href="reporter_documentation.html">Reporting</a>                |                <a href="expectation_documentation.html">Expectations</a>                |                <a href="web_tester_documentation.html">Web tester</a>                |                <a href="form_testing_documentation.html">Testing forms</a>                |                <a href="authentication_documentation.html">Authentication</a>                |                <a href="browser_documentation.html">Scriptable browser</a></div></div><h1>Documentation sur le rapporteur de test</h1>        This page...        <ul><li>            Afficher <a href="#html">les r茅sultats en HTML</a>        </li><li>            Afficher et <a href="#autres">rapporter les r茅sultats</a>            dans d'autres formats        </li><li>            Utilis茅 <a href="#cli">SimpleTest depuis la ligne de commande</a>        </li><li>            <a href="#xml">Utiliser XML</a> pour des tests distants        </li></ul><div class="content">                    <p>                SimpleTest suit plut么t plus que moins le mod猫le MVC (Mod猫le-Vue-Contr么leur).                Les classes "reporter" sont les vues et les mod猫les                sont vos sc茅narios de test et leur hi茅rarchie.                Le contr么leur est le plus souvent masqu茅 脿 l'utilisateur                de SimpleTest 脿 moins de vouloir changer la fa莽on                dont les tests sont effectivement ex茅cut茅s,                auquel cas il est possible de surcharger les objets                "runner" (ceux de l'ex茅cuteur) depuis l'int茅rieur                d'un sc茅nario de test. Comme d'habitude avec MVC,                le contr么leur est plut么t ind茅fini et il existe d'autres endroits                pour contr么ler l'ex茅cution des tests.            </p>                <p><a class="target" name="html"><h2>Les r茅sultats rapport茅s au format HTML</h2></a></p>            <p>                L'affichage par d茅faut est minimal 脿 l'extr锚me.                Il renvoie le succ猫s ou l'茅chec avec les barres conventionnelles                - rouge et verte - et affichent une trace d'arborescence                des groupes de test pour chaque assertion erron茅e. Voici un tel 茅chec...                <div class="demo">                    <h1>File test</h1>                    <span class="fail">Fail</span>: createnewfile-&gt;True assertion failed.<br>                    <div style="padding: 8px; margin-top: 1em; background-color: red; color: white;">1/1 test cases complete.                    <strong>0</strong> passes, <strong>1</strong> fails and <strong>0</strong> exceptions.</div>                </div>                Alors qu'ici tous les tests passent...                <div class="demo">                    <h1>File test</h1>                    <div style="padding: 8px; margin-top: 1em; background-color: green; color: white;">1/1 test cases complete.                    <strong>1</strong> passes, <strong>0</strong> fails and <strong>0</strong> exceptions.</div>                </div>                La bonne nouvelle, c'est qu'il existe pas mal de points                dans la hi茅rarchie de l'affichage pour cr茅er des sous-classes.            </p>            <p>                Pour l'affichage bas茅 sur des pages web,                il y a la classe <span class="new_code">HtmlReporter</span> avec la signature suivante...<pre>class HtmlReporter extends SimpleReporter {    public HtmlReporter($encoding) { ... }    public makeDry(boolean $is_dry) { ... }    public void paintHeader(string $test_name) { ... }    public void sendNoCacheHeaders() { ... }    public void paintFooter(string $test_name) { ... }    public void paintGroupStart(string $test_name, integer $size) { ... }    public void paintGroupEnd(string $test_name) { ... }    public void paintCaseStart(string $test_name) { ... }    public void paintCaseEnd(string $test_name) { ... }    public void paintMethodStart(string $test_name) { ... }    public void paintMethodEnd(string $test_name) { ... }    public void paintFail(string $message) { ... }    public void paintPass(string $message) { ... }    public void paintError(string $message) { ... }    public void paintException(string $message) { ... }    public void paintMessage(string $message) { ... }    public void paintFormattedMessage(string $message) { ... }    protected string _getCss() { ... }    public array getTestList() { ... }    public integer getPassCount() { ... }    public integer getFailCount() { ... }    public integer getExceptionCount() { ... }    public integer getTestCaseCount() { ... }    public integer getTestCaseProgress() { ... }}</pre>                Voici ce que certaines de ces m茅thodes veulent dire.                Premi猫rement les m茅thodes d'affichage que vous voudrez probablement surcharger...                <ul class="api">                    <li>                        <span class="new_code">HtmlReporter(string $encoding)</span><br>                        est le constructeur. Notez que le test unitaire initie                        le lien 脿 l'affichage plut么t que l'oppos茅.                        L'affichage est principalement un receveur passif                        des 茅v猫nements de tests. Cela permet d'adapter                        facilement l'affichage pour d'autres syst猫mes                        en dehors des tests unitaires, tel le suivi                        de la charge de serveurs.                        L'"encoding" est le type d'encodage                        que vous souhaitez utiliser pour l'affichage du test.                        Pour pouvoir effectuer un rendu correct de la sortie                        de d茅bogage quand on utilise le testeur web,                        il doit correspondre 脿 l'encodage du site test茅.                        Les cha卯nes de caract猫res disponibles                        sont indiqu茅es dans la fonction PHP                        <a href="http://www.php.net/manual/fr/function.htmlentities.php">html_entities()</a>.                    </li>                    <li>                        <span class="new_code">void paintHeader(string $test_name)</span><br>                        est appel茅 une fois, au d茅but du test quand l'茅v猫nement                        de d茅marrage survient. Le premier 茅v猫nement de d茅marrage                        est souvent d茅livr茅 par le groupe de tests du niveau                        le plus haut et donc c'est de l脿 que le                        <span class="new_code">$test_name</span> arrive.                        Il peint les titres de la page, CSS, la balise "body", etc.                        Il ne renvoie rien du tout (<span class="new_code">void</span>).                    </li>                    <li>                        <span class="new_code">void paintFooter(string $test_name)</span><br>                        est appel茅 脿 la toute fin du test pour fermer                        les balises ouvertes par l'ent锚te de la page.                        Par d茅faut il affiche aussi la barre rouge ou verte                        et le d茅compte final des r茅sultats.                        En fait la fin des tests arrive quand l'茅v猫nement                        de fin de test arrive avec le m锚me nom                        que celui qui l'a initi茅 au m锚me niveau.                        Le nid des tests en quelque sorte.                        Fermer le dernier test finit l'affichage.                    </li>                    <li>                        <span class="new_code">void paintMethodStart(string $test_name)</span><br>                        est appel茅 au d茅but de chaque m茅thode de test.                        Normalement le nom vient de celui de la m茅thode.                        Les autres 茅v猫nements de d茅part de test                        se comportent de la m锚me mani猫re sauf que                        celui du groupe de tests indique au rapporteur                        le nombre de sc茅narios de test qu'il contient.                        De la sorte le rapporteur peut afficher une barre                        de progr猫s au fur et 脿 mesure que l'ex茅cuteur                        passe en revue les sc茅narios de test.                    </li>                    <li>                        <span class="new_code">void paintMethodEnd(string $test_name)</span><br>                        cl么t le test lanc茅 avec le m锚me nom.                    </li>                    <li>                        <span class="new_code">void paintFail(string $message)</span><br>                        peint un 茅chec. Par d茅faut il ne fait qu'afficher                        le mot "fail", une trace d'arborescence                        affichant la position du test en cours                        et le message transmis par l'assertion.                    </li>                    <li>                        <span class="new_code">void paintPass(string $message)</span><br>                        ne fait rien, par d茅faut.                    </li>                    <li>                        <span class="new_code">string _getCss()</span><br>                        renvoie les styles CSS sous la forme d'une cha卯ne                        脿 l'attention de la m茅thode d'ent锚tes d'une page.                        Des styles additionnels peuvent 锚tre ajout茅s ici                        si vous ne surchargez pas les ent锚tes de la page.                        Vous ne voudrez pas utiliser cette m茅thode dans                        des ent锚tes d'une page surcharg茅e si vous souhaitez                        inclure le feuille de style CSS d'origine.                    </li>                </ul>                Il y a aussi des accesseurs pour aller chercher l'information                sur l'茅tat courant de la suite de test. Vous les utiliserez                pour enrichir l'affichage...                <ul class="api">                    <li>                        <span class="new_code">array getTestList()</span><br>                        est la premi猫re m茅thode tr猫s commode pour les sous-classes.                        Elle liste l'arborescence courante des tests                        sous la forme d'une liste de noms de tests.                        Le premier test -- celui le plus proche du coeur --                        sera le premier dans la liste et la m茅thode de test                        en cours sera la derni猫re.                    </li>                    <li>                        <span class="new_code">integer getPassCount()</span><br>                        renvoie le nombre de succ猫s atteint. Il est n茅cessaire                        pour l'affichage 脿 la fin.                    </li>                    <li>                        <span class="new_code">integer getFailCount()</span><br>                        renvoie de la m锚me mani猫re le nombre d'茅checs.                    </li>                    <li>                        <span class="new_code">integer getExceptionCount()</span><br>                        renvoie quant 脿 lui le nombre d'erreurs.                    </li>                    <li>                        <span class="new_code">integer getTestCaseCount()</span><br>                        est le nombre total de sc茅narios lors de l'ex茅cution des tests.                        Il comprend aussi les tests group茅s.                    </li>                    <li>                        <span class="new_code">integer getTestCaseProgress()</span><br>                        est le nombre de sc茅narios r茅alis茅s jusqu'脿 pr茅sent.                    </li>                </ul>                Une modification simple : demander 脿 l'HtmlReporter d'afficher                aussi bien les succ猫s que les 茅checs et les erreurs...<pre><strong>class ShowPasses extends HtmlReporter {        function paintPass($message) {        parent::paintPass($message);        print "&amp;&lt;span class=\"pass\"&gt;Pass&lt;/span&gt;: ";        $breadcrumb = $this-&gt;getTestList();        array_shift($breadcrumb);        print implode("-&amp;gt;", $breadcrumb);        print "-&amp;gt;$message&lt;br /&gt;\n";    }        function _getCss() {        return parent::_getCss() . ' .pass { color: green; }';    }}</strong></pre>            </p>            <p>                Une m茅thode qui a beaucoup fait jaser reste la m茅thode <span class="new_code">makeDry()</span>.                Si vous lancez cette m茅thode, sans param猫tre,                sur le rapporteur avant que la suite de test                ne soit ex茅cut茅e alors aucune m茅thode de test                ne sera appel茅e. Vous continuerez 脿 avoir                les 茅v猫nements entrants et sortants des m茅thodes                et sc茅narios de test, mais aucun succ猫s ni 茅chec ou erreur,                parce que le code de test ne sera pas ex茅cut茅.            </p>            <p>                La raison ? Pour permettre un affichage complexe                d'une IHM (ou GUI) qui permettrait la s茅lection                de sc茅narios de test individuels.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?