CakePHP - Manual/CommonTasks/Testing/Miscellaneous /wiki/Manual/CommonTasks/Testing/Miscellaneous History/revisions of CakePHP/Manual/CommonTasks/Testing/Miscellaneous en-us 2009-05-10 21:23:17 /wiki/Manual/CommonTasks/Testing/Miscellaneous/show?time=2009-05-10+21%3A23%3A17 <div class="pageBefore"><img src="/wiki_/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" /></div><div class="page"> <b>Сравнение версий <a name=".manual.commontasks.testing.miscellaneous" href="/wiki/Manual/CommonTasks/Testing/Miscellaneous" class="">/Manual&nbsp;/&nbsp;Common&nbsp;Tasks&nbsp;/&nbsp;Testing&nbsp;/&nbsp;Miscellaneous</a> за <a href="/wiki/Manual/CommonTasks/Testing/Miscellaneous?time=2009-05-10+21%3A23%3A17">2009-05-10 21:23:17</a> и <a href="/wiki/Manual/CommonTasks/Testing/Miscellaneous">2009-05-10 21:24:50</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions"><span class="missingpage">&lt;&lt; Тестирование плагинов</span><a href="/wiki/TestingPlugins/edit?add=1" title="Создать эту страницу">?</a> | <span class="missingpage">Локализация и&nbsp;интернационализация &gt;&gt;</span><a href="/wiki/Localization/edit?add=1" title="Создать эту страницу">?</a></div><br /> <b>Удалено:</b><br /> <div class="deletions"><span class="missingpage">&lt;&lt; Тестирование плагинов</span><a href="/wiki/TestingPlugins/edit?add=1" title="Создать эту страницу">?</a> | <span class="missingpage">Локализация и&nbsp;интернационализация &gt;&gt;</span><a href="/wiki/Localization/edit?add=1" title="Создать эту страницу">?</a></div></div> 2009-05-10 21:13:36 /wiki/Manual/CommonTasks/Testing/Miscellaneous/show?time=2009-05-10+21%3A13%3A36 <div class="pageBefore"><img src="/wiki_/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" /></div><div class="page"> <b>Сравнение версий <a href="/wiki/Manual/CommonTasks/Testing/Miscellaneous" class="">/Manual&nbsp;/&nbsp;Common&nbsp;Tasks&nbsp;/&nbsp;Testing&nbsp;/&nbsp;Miscellaneous</a> за <a href="/wiki/Manual/CommonTasks/Testing/Miscellaneous?time=2009-05-10+21%3A13%3A36">2009-05-10 21:13:36</a> и <a href="/wiki/Manual/CommonTasks/Testing/Miscellaneous?time=2009-05-10+21%3A23%3A17">2009-05-10 21:23:17</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions">Образец модификации cake_reporter.php, который создает таблицу для&nbsp;хранения результатов тестирования:<br /> &lt;?php<br /> /**<br /> * <span class="missingpage">Cake&nbsp;PHP</span><a href="/wiki/CakePHP/edit?add=1" title="Создать эту страницу">?</a>&#153; Tests &lt;<a href="https://trac.cakephp.org/wiki/Developement/TestSuite" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink"><img src="/wiki_/themes/cake/icons/web.gif" alt="" border="0" />https://trac.cakephp.org/wiki/Developement/TestSuite</a>><br /> * Copyright 20<span class="nobr">05&ndash;200</span>8, Cake Software Foundation, Inc.<br /> * 1785 E. Sahara Avenue, Suite 4<span class="nobr">90&ndash;204</span><br /> * Las&nbsp;Vegas, Nevada 89104<br /> *<br /> * Licensed under The&nbsp;Open Group Test Suite License<br /> * Redistributions of&nbsp;files must retain the&nbsp;above copyright notice.<br /> */<br /> class <span class="missingpage">Cake&nbsp;Html&nbsp;Reporter</span><a href="/wiki/CakeHtmlReporter/edit?add=1" title="Создать эту страницу">?</a> extends <span class="missingpage">Html&nbsp;Reporter</span><a href="/wiki/HtmlReporter/edit?add=1" title="Создать эту страницу">?</a> {<br /> function <span class="missingpage">Cake&nbsp;Html&nbsp;Reporter</span><a href="/wiki/CakeHtmlReporter/edit?add=1" title="Создать эту страницу">?</a>($characterSet = 'UTF-8') {<br /> parent::HtmlReporter($characterSet);<br /> }<br /> <br /> function paintHeader($testName) {<br /> <div class="indent">$this-&gt;sendNoCacheHeaders();<br /> $baseUrl = BASE;<br /> print "&lt;h2&gt;$testName&lt;/h2&gt;\n";<br /> print "&lt;table style=\"\"&gt;&lt;th&gt;Res.&lt;/th&gt;&lt;th&gt;Test case&lt;/th&gt;&lt;th&gt;Message&lt;/th&gt;\n";<br /> flush();</div> }<br /> function paintFooter($testName) {<br /> <div class="indent"> $colour = ($this-&gt;getFailCount() + $this-&gt;getExceptionCount() &gt; 0 ? &#147;red&#148; : &#147;green&#148;);<br /> print "&lt;/table&gt;\n";<br /> print "&lt;div style=\<!--notypo--><!--/notypo--><span class="missingpage">Group&nbsp;Test</span><a href="/wiki/GroupTest/edit?add=1" title="Создать эту страницу">?</a>&quot;&quot; и&nbsp;импортируйте тест следующим образом:</div> &lt;?php <br /> class <span class="missingpage">Try&nbsp;Group&nbsp;Test</span><a href="/wiki/TryGroupTest/edit?add=1" title="Создать эту страницу">?</a> extends <span class="missingpage">Group&nbsp;Test</span><a href="/wiki/GroupTest/edit?add=1" title="Создать эту страницу">?</a> { <br /> <div class="indent">var $label = 'try'; <br /> function tryGroupTest() { <br /> <div class="indent"><span class="missingpage">Test&nbsp;Manager</span><a href="/wiki/TestManager/edit?add=1" title="Создать эту страницу">?</a>::addTestCasesFromDirectory($this, APP_TEST_CASES. DS&nbsp;. 'models'); <br /> </div>} </div> } <br /> ?&gt; <br /> Код, приведенный выше, сгруппирует все&nbsp;тестовые примеры, расположенные в&nbsp;каталоге /app/tests/cases/models/. Для&nbsp;того, чтобы добавить отдельный файл используйте TestManager::addTestFile($this, filename).<br /> <span class="missingpage">&lt;&lt; Тестирование плагинов</span><a href="/wiki/TestingPlugins/edit?add=1" title="Создать эту страницу">?</a> | <span class="missingpage">Локализация и&nbsp;интернационализация &gt;&gt;</span><a href="/wiki/Localization/edit?add=1" title="Создать эту страницу">?</a></div></div> 2009-05-08 23:39:50 /wiki/Manual/CommonTasks/Testing/Miscellaneous/show?time=2009-05-08+23%3A39%3A50 <div class="pageBefore"><img src="/wiki_/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" /></div><div class="page"> <b>Сравнение версий <a href="/wiki/Manual/CommonTasks/Testing/Miscellaneous" class="">/Manual&nbsp;/&nbsp;Common&nbsp;Tasks&nbsp;/&nbsp;Testing&nbsp;/&nbsp;Miscellaneous</a> за <a href="/wiki/Manual/CommonTasks/Testing/Miscellaneous?time=2009-05-08+23%3A39%3A50">2009-05-08 23:39:50</a> и <a href="/wiki/Manual/CommonTasks/Testing/Miscellaneous?time=2009-05-10+21%3A13%3A36">2009-05-10 21:13:36</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions">Стандартный генератор отчетов очень простой. Если вы&nbsp;хотите сделать более яркий вывод, чтобы впечатлить кого-то, то&nbsp;не пугайтесь &ndash; генератор отчетов можно легко расширить. Единственная опасность &ndash; это&nbsp;то, что&nbsp;вам придется работать с&nbsp;кодом ядра <!--notypo-->CakePHP<!--/notypo-->, в&nbsp;частности с&nbsp;/cake/tests/libs/cake_reporter.php.<br /> Для&nbsp;изменения вывода отчетов тестирования вам&nbsp;необходимо подменить следующие методы:<br /> <strong>paintHeader()</strong> <br /> <div class="indent"><div class="indent"><div class="indent">Печатает перед началом теста.<br /> </div></div></div> <strong>paintPass()</strong><br /> <div class="indent"><div class="indent"><div class="indent">Печатает каждый раз, когда тест пройден. Используйте $this-&gt;getTestList() для&nbsp;получения массива информации, относящейся к&nbsp;тесту, и $message для&nbsp;получения результата теста. Помните о&nbsp;вызове parent::paintPass($message).<br /> </div></div></div> <strong>paintFail()</strong><br /> <div class="indent"><div class="indent"><div class="indent">Печатает каждый раз, когда тестовый пример провалился. Помните о&nbsp;вызове parent::paintFail($message).<br /> </div></div></div> <strong>paintFooter()</strong><br /> <div class="indent"><div class="indent"><div class="indent">Печатает, когда тест закончился, т.е. когда все&nbsp;тестовые примеры выполнены.</div></div></div> Если во&nbsp;время выполнения paintPass и&nbsp;paintFail, вы&nbsp;захотите скрыть &laquo;родительский&raquo; вывод, то&nbsp;заключите вызов в&nbsp;теги html-комментария, как&nbsp;здесь:<br /> <!--notypo--><div class="code"><code><span style="color: #000000"> <span style="color: #0000BB">&lt;?<br /></span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">"\n&lt;!--&nbsp;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">parent</span><span style="color: #007700">::</span><span style="color: #0000BB">paintFail</span><span style="color: #007700">(</span><span style="color: #0000BB">$message</span><span style="color: #007700">);<br />echo&nbsp;</span><span style="color: #DD0000">"&nbsp;--&gt;\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span> </span> </code></div><!--/notypo--></div></div>