function forEach(object, callback) {

    for (var i in object) {
        if (({}).hasOwnProperty.call(object, i)) {
            callback(object[i], i);
        }
    }

}

var Suite = function(testSuite){

    var fs = require('fs');
    var workingDir = fs.workingDirectory;

    phantom.injectJs(workingDir + '/' + testSuite + '/config.js');

    this.config = config;
    this.fs = fs;

    this.workingDir = workingDir;
    this.compiledPath = workingDir + config.target.location;
    this.sourcePath = workingDir + config.target.location + '_tmp';

    this.testRunnerSource = this.sourcePath + '/test.html';
    this.testRunnerCompiled = this.compiledPath + '/test.html';
    this.report = this.compiledPath + '/test-report.html';

    this.runnerTemplate = workingDir + '/test/index.html';
    this.coverageTemplate = workingDir + '/vendor/qunit-coverage/template-fileCoverage.html';
    this.reportTemplate = workingDir + '/vendor/qunit-coverage/template-report.html';

};