Zur Zeit wird gefiltert nach: unittests
Filter zurücksetzen

21.09.2011
20:26

Der Schussel-Test

Nachts um drei oder Freitag um 5 sind Zeiten an denen man es bereuen könnte mal schnell noch einen bugfix oder ein neues Feature in seine TYPO3 Extension eingecheckt zu haben.

Möglich nämlich, dass man in der debug-Wut doch noch irgendwo eine Testausgabe vergessen hat. Gerade mal wieder erlebt und gleich mal einen Unit-Test dazu geschrieben, der wohl nun zum Standard bei meinen Extensions gehören wird :)

Der Test durchsucht die angegebene Extension nach den angegebenen Debug Befehlen und schlägt bei Funden Alarm.

<?php
/**
 * Testcase to find debug code in the extension
 * 
 * @author Daniel Lienert 
 * @package Tests
 */
class Tx_Yag_Tests_DebugCodeTest extends Tx_Extbase_Tests_Unit_BaseTestCase {

	/**
	 * @var string Put the extension name here
	 */
	protected $extensionName = 'yag';


	/**
	 * @return array
	 */
	public function debugStringDataProvider() {
		return array(
			'Search for print_r in code!' => array('debugCommand' => 'print_r'),
			'Search for var_dump in code!' => array('debugCommand' => 'var_dump'),
		);
	}

	/**
	 * @test
	 * @dataProvider debugStringDataProvider
	 * 
	 * @var $debugCommand
	 */
	public function checkForForgottenDebugCode($debugCommand) {
		$searchPath = t3lib_extMgm::extPath($this->extensionName);

		$result = `fgrep -i -r "$debugCommand" "$searchPath" | grep ".php"`;
		$lines = explode("\n", trim($result));

		foreach($lines as $line) {
			if(!stristr($line, __FILE__)) {
				$this->fail('Found ' . $debugCommand . ': ' . $line);
			}
		}
	}
}
?>
Daniel Lienert(daniel@lienert.cc)PermalinkKommentare 0
Tags: unittests
Views: 122

Zurück

Design © by Daniel Lienert / 2009