develooper Front page | perl.qa | Postings from February 2004

changes to T::H to enable continuous testing

Thread Next
From:
Scott Bolte
Date:
February 6, 2004 09:03
Subject:
changes to T::H to enable continuous testing
Message ID:
200402061703.i16H3gae050960@crag.niss.com
	I'd like to propose an addition to the Test::Harness parsing
	rules to support dependency analysis. That, in turn, allows
	monitoring for file changes and selective, immediate
	re-execution of test files. Is this the right forum for
	that discussion?

	Building on the mini_harness.plx example from
	Test::Harness::Straps, I added checks for declarations like
	the following:

		DEPENDS_ON "file"	# implicit test file dependency
		"test_file" DEPENDS_ON "module_file"
		"test_file" DEPENDS_ON "data_file"

	I'd expect a new Test::Harness::depends_on(@) function is
	the best way to generate the declarations. For now, however,
	I just add the following line to the end of my test files:

		map {print qq(DEPENDS_ON "$INC{$_}"\n) } keys(%INC);

	In a script with a perpetual loop, I check the modification
	times of the test files and the modules each uses. Then,
	whenever something changes, I rerun the affected tests.
	Also inside that loop is the generation of a simple dashboard.

	With this code, less than 200 lines all told, I have
	continuous, automatic testing going on as I write new tests
	and new code. I've found it a very powerful feedback system.

	As a newcomer to this list, I'm not sure what needs to
	happen to expanded Test::Harness. I can provide reference code,
	but I expect a discussion needs to happen first.

		Scott

	P.S. Btw, I also will be requesting that the stderr output
	     from tests be captured as well. That will allow a more
	     sophisticated dashboard, an html document for example,
	     to have a cross link from a failed test to its
	     diagnostics.


Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About