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

在编译为JavaScript时如何测试Kotlin代码?,kotlin,Kotlin,我在IntelliJ(Ultimate)中有一个Kotlin JavaScript项目。我希望能够为这个项目编写测试 我尝试了很多不同的方法,从用Spek编写测试(这将是理想的)到用Karma/Jasmine编写测试。Spek的问题是我无法让它与JavaScript项目一起工作。它抱怨一些JAR不是JavaScript库 Karma/Jasmine的问题是,我不知道如何让测试运行者从我的Kotlin测试输出中获取测试。当测试是用普通JavaScript编写时,它们无法访问我的Kotlin对象,因

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

我尝试了很多不同的方法,从用Spek编写测试(这将是理想的)到用Karma/Jasmine编写测试。Spek的问题是我无法让它与JavaScript项目一起工作。它抱怨一些JAR不是JavaScript库

Karma/Jasmine的问题是,我不知道如何让测试运行者从我的Kotlin测试输出中获取测试。当测试是用普通JavaScript编写时,它们无法访问我的Kotlin对象,因为我不知道如何正确地引用它们,因为在对Kotlin进行JavaScript编译时会出现名称混乱


目前我对任何事情都持开放态度,因为这是一个角度项目,我可能知道如何使用量角器进行端到端测试,尽管我更喜欢单元测试覆盖率。

下面你可以找到我使用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!")
    }
}

我想我的问题是为什么不用Kotlin编写测试。。。?我想你应该把正确转换的测试留给jetbrains。我很乐意用Kotline编写我的测试。不幸的是,我还没有找到一个JavaScript测试运行程序来定位和执行Kotlin to JavaScript测试。对于Java,标准(JUnit)测试运行程序可以在Kotlin生成的Java代码中找到测试,因此问题是特定于JavaScript的。我目前一直在试图找出如何编写引用我实际代码的测试。我在src目录中有我的Kotlin源代码,在tests目录中有我的Kotlin测试代码。这将导致生成
out/production/MyProject/MyProject.js
out/test/MyProject/MyProject.js
文件。但是,当我尝试从测试代码引用生产代码时,Kotlin停止编译,抱怨无法解析对库包的引用:/
<!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>