Initial version of code coverage report.
It mimics Cobertura report so it can be used in Jenkins with
proper plugin. However, it's very basic with limited functionality.
--- a/reports/Builder__TestReport.st Tue Jun 25 20:25:40 2013 +0200
+++ b/reports/Builder__TestReport.st Tue Jun 25 20:25:50 2013 +0200
@@ -3,7 +3,7 @@
"{ NameSpace: Builder }"
Report subclass:#TestReport
- instanceVariableNames:'suite'
+ instanceVariableNames:'suite coverage'
classVariableNames:''
poolDictionaries:''
category:'Builder-Reports'
@@ -55,13 +55,29 @@
"Created: / 07-11-2011 / 09:47:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!TestReport methodsFor:'command line options'!
+
+cmdlineOptionCoverage
+
+ ^CmdLineOption new
+ short: $c;
+ long: 'coverage';
+ description: 'Collect code coverage when running tests';
+ action:[
+ coverage := CoverageReport new.
+ ]
+
+ "Created: / 25-06-2013 / 15:36:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!TestReport methodsFor:'initialization'!
initialize
suite := TestSuite new.
+ coverage := nil.
- "Modified: / 07-11-2011 / 09:40:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 25-06-2013 / 15:37:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
setupForClasses:classes
@@ -84,9 +100,9 @@
"Created: / 04-08-2011 / 14:34:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
-setupForPackages:packages
+setupForPackages:pkgs
- packages do: [:pkg |
+ pkgs do: [:pkg |
|def |
self loadPackageIfNotAlready: pkg.
@@ -114,8 +130,11 @@
suite addTest: psuite.
]
].
+ coverage notNil ifTrue:[
+ coverage setupForPackages: packages.
+ ]
- "Modified: / 13-01-2012 / 13:00:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 25-06-2013 / 16:12:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
setupForSuite: suiteToAdd
@@ -143,16 +162,26 @@
runReport
- |result|
+ | result |
result := Result new format:format.
- suite run:result.
+ coverage notNil ifTrue:[
+ InstrumentationContext run:[
+ suite run:result.
+ ].
+ Transcript cr; cr.
+ Transcript show: 'COLLECTING COVERAGE...'.
+ coverage name: self name.
+ coverage run.
+ ] ifFalse:[
+ suite run:result.
+ ].
Transcript cr; cr.
Transcript show: 'SUMMARY: '.
result printOn: Transcript.
Transcript cr.
"Created: / 04-08-2011 / 12:39:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 31-01-2013 / 13:48:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 25-06-2013 / 16:21:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!TestReport::Result methodsFor:'accessing'!
@@ -468,6 +497,6 @@
!
version_SVN
- ^ '§Id: Builder__TestReport.st 300 2012-01-12 17:53:04Z vranyj1 §'
+ ^ '$Id$'
! !