Skip to content

Commit

Permalink
Update test runners
Browse files Browse the repository at this point in the history
  • Loading branch information
pfreitag committed Aug 31, 2017
1 parent 5730d00 commit 2e8a8f7
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 26 deletions.
2 changes: 1 addition & 1 deletion box.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@

},
"devDependencies":{
"testbox":"2.3.0"
"testbox":"2.5.0"
},
"installPaths":{
"testbox":"tests/testbox"
Expand Down
60 changes: 36 additions & 24 deletions tests/run.cfm
Original file line number Diff line number Diff line change
@@ -1,24 +1,36 @@
<cfscript>
function exitCode( required numeric code ) {
var exitcodeFile = GetDirectoryFromPath( GetCurrentTemplatePath() ) & "/.exitcode";
FileWrite( exitcodeFile, code );
if (code == 1) {
cfheader(statuscode="500",statustext="Tests Failed");
}
}
try {
reporter = cgi.server_protocol == "CLI/1.0" ? "text" : "simple";
testbox = new testbox.system.TestBox( options={}, reporter=reporter, directory={
recurse = true
, mapping = "tests"
, filter = function( required path ){ return true; }
} );
writeOutput( testbox.run() );
resultObject = testbox.getResult();
errors = resultObject.getTotalFail() + resultObject.getTotalError();
exitCode( errors ? 1 : 0 );
} catch ( any e ) {
writeOutput( "An error occurred running the tests. Message: [#e.message#], Detail: [#e.detail#]" );
exitCode( 1 );
}
</cfscript>
<cfparam name="url.reporter" default="simple" type="variablename">
<cfset plainText = url.reporter IS "text" OR url.reporter IS "mintext">
<cfsetting requesttimeout="150" enablecfoutputonly="#plainText#">
<cfif plainText>
<cfcontent type="text/plain">
</cfif>

<strong>Test Environment</strong>:
<cfif server.coldfusion.productname contains "ColdFusion">
<cfoutput>Adobe ColdFusion #server.coldfusion.productversion#</cfoutput>
<cfelseif structKeyExists(server, "lucee")>
<cfoutput>Lucee #server.lucee.version#</cfoutput>
<cfelseif structKeyExists(server, "railo")>
<cfoutput>Railo #server.railo.version#</cfoutput>
<cfelse>
<cfoutput>#server.coldfusion.productname#</cfoutput>
</cfif>
<cfoutput> on #server.os.name# #server.os.version#</cfoutput>
<cfset system = createObject("java", "java.lang.System")>
<cfoutput> running Java #system.getProperty("java.version")#

</cfoutput>

<cfset r = new testbox.system.TestBox( directory="tests", reporter=url.reporter ) >
<cfoutput>#r.run()#</cfoutput>
<cfset resultObject = r.getResult()>
<cfset errors = resultObject.getTotalFail() + resultObject.getTotalError()>
<cfif errors GT 0>
<cfheader statuscode="500" statustext="Tests Failed">
</cfif>

<cfif NOT plainText>
<cfoutput>
<a href="run.cfm?ts=#GetTickCount()#">ReRun</a>
</cfoutput>
</cfif>
8 changes: 7 additions & 1 deletion tests/tests/TestExamples.cfc
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,13 @@ component extends="testbox.system.BaseSpec" {
expect(actualResult).toBeFalse("#fileName# example result is:#e.result# but evaluated to:#actualResult#");
}
} else {
expect(actualResult).toBe(e.result, "#fileName# example result is:#e.result# but evaluated to:#actualResult#");
if (isNumeric(e.result) && len(e.result) > 10) {
//there are some rounding differences to account for between ACF and Lucee, see results of acos(0.3) for example
expect(numberFormat(actualResult, "_.________")).toBe(numberFormat(e.result, "_.________"), "#fileName# example result is:#e.result# but evaluated to:#actualResult#");
} else {
expect(actualResult).toBe(e.result, "#fileName# example result is:#e.result# but evaluated to:#actualResult#");
}

}

}
Expand Down

0 comments on commit 2e8a8f7

Please sign in to comment.