编译为JavaScript时如何测试Kotlin代码?

我在IntelliJ(Ultimate)中有一个Kotlin JavaScript项目。 我希望能够为这个项目编写测试。

我已经尝试了许多不同的东西,从用Spek编写测试(这将是理想的)写入Karma / Jasmine。 Spek的问题是我无法使用JavaScript项目。 它抱怨一些不是JavaScript库的罐子。

Karma / Jasmine的问题是,我不知道如何让测试运行者从我的Kotlin测试输出中获取测试。 当测试是用普通的JavaScript编写的时候,他们不能访问我的Kotlin对象,因为我不知道如何正确引用它们,当你把Kotlin编译成JavaScript时,会发生所有的名字混乱。

我现在对任何东西都是开放的,因为这是一个Angular项目,我大概可以弄清楚如何用量角器进行端到端的测试,但我真的更喜欢一些单元测试覆盖率。

下面你可以找到我使用QUnit编写的简单测试。 我相信你可以为其他库做同样的事情。 此外,它可以通过使其更安全的类型来改善。

main.kt

 native("QUnit") val qunit: dynamic val assert = qunit.assert fun main(args: Array<String>) { qunit.test( "hello test") { assert -> val t: Any = "1" assert.ok(1 == t, "Passed!") } qunit.test( "hello test") { assert.ok(1 == 1, "Passed!") } } 

runner.html

 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>QUnit Example</title> <link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-1.17.1.css"> </head> <body> <div id="qunit"></div> <div id="qunit-fixture"></div> <script src="https://code.jquery.com/qunit/qunit-1.17.1.js"></script> <script src="lib/kotlin.js"></script> <script src="js_test.js"></script> </body> </html>