| // -- Testing with Mocha under Node |
| |
| task installDependenciesMochaNode(type: NpmTask, dependsOn: [npmInstall]) { |
| args = ['install', |
| "mocha@$mocha_version", |
| "source-map-support@$source_map_support_version", |
| '--no-save'] |
| if (project.hasProperty("teamcity")) args += [ |
| "mocha-teamcity-reporter@$mocha_teamcity_reporter_version"] |
| } |
| |
| task testMochaNode(type: NodeTask, dependsOn: [compileTestKotlin2Js, installDependenciesMochaNode]) { |
| script = file("$node.nodeModulesDir/node_modules/mocha/bin/mocha") |
| args = [compileTestKotlin2Js.outputFile, '--require', 'source-map-support/register'] |
| if (project.hasProperty("teamcity")) args += ['--reporter', 'mocha-teamcity-reporter'] |
| } |
| |
| test.dependsOn testMochaNode |
| |
| // -- Testing with Mocha under headless Chrome |
| |
| task installDependenciesMochaChrome(type: NpmTask, dependsOn: [npmInstall]) { |
| args = ['install', |
| "mocha@$mocha_version", |
| "mocha-headless-chrome@$mocha_headless_chrome_version", |
| "kotlin@$kotlin_version", |
| "kotlin-test@$kotlin_version", |
| '--no-save'] |
| if (project.hasProperty("teamcity")) args += [ |
| "mocha-teamcity-reporter@$mocha_teamcity_reporter_version"] |
| } |
| |
| def mochaChromeTestPage = file("$buildDir/test-page.html") |
| |
| task prepareMochaChrome(dependsOn: [compileTestKotlin2Js, installDependenciesMochaChrome]) { |
| outputs.file(mochaChromeTestPage) |
| } |
| |
| prepareMochaChrome.doLast { |
| mochaChromeTestPage.text = """<!DOCTYPE html> |
| <html> |
| <head> |
| <title>Mocha Tests</title> |
| <meta charset="utf-8"> |
| <link rel="stylesheet" href="$node.nodeModulesDir/node_modules/mocha/mocha.css"> |
| </head> |
| <body> |
| <div id="mocha"></div> |
| <script src="$node.nodeModulesDir/node_modules/mocha/mocha.js"></script> |
| <script>mocha.setup('bdd');</script> |
| <script src="$node.nodeModulesDir/node_modules/kotlin/kotlin.js"></script> |
| <script src="$node.nodeModulesDir/node_modules/kotlin-test/kotlin-test.js"></script> |
| <script src="$compileKotlin2Js.outputFile"></script> |
| <script src="$compileTestKotlin2Js.outputFile"></script> |
| <script>mocha.run();</script> |
| </body> |
| </html> |
| """ |
| } |
| |
| task testMochaChrome(type: NodeTask, dependsOn: prepareMochaChrome) { |
| script = file("$node.nodeModulesDir/node_modules/mocha-headless-chrome/bin/start") |
| args = [compileTestKotlin2Js.outputFile, '--file', mochaChromeTestPage] |
| if (project.hasProperty("teamcity")) args += ['--reporter', 'mocha-teamcity-reporter'] |
| } |
| |
| // todo: Commented out because mocha-headless-chrome does not work on TeamCity |
| //test.dependsOn testMochaChrome |
| |