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

