我只是从Kotlin开始,最近跟随着有关https://docs.spring.io/sts/nan/v373/SpringToolSuiteAndKotlin.html
的教程但是在我的项目中,我将src / main / kotlin和src / test / kotlin改为src /../ java。我删除了.project,.classpath,.settings和目标文件夹,并重新导入了项目,以确保Eclipse具有最新的配置。但是,在STS的.kt测试类上运行JUnit测试时遇到问题。 Eclipse本身可以很好地编译测试类。
我从控制台(org.jetbrains.kotlin.ui.console)收到错误:
E:\Lhasa\Workspace\Ecosystem-Java8-Master-STS-3.8.4\kotlin-demo\src\test\java\lhasa\demo\KotlinSimpleTest.kt
ERROR: Unresolved reference: KotlinLhasaDemo (5, 19)
ERROR: Unresolved reference: KotlinLhasaDemo (11, 14)
JUnit午餐者根本看不到Kotlin测试类(因为它没有被编译)。 但是,如果我运行mvn install,则mvn可以在该类上正常运行。在STS JUnit之后重新启动将再次产生错误消息,但是这次它将发现该类并在其上运行测试。 但是,Eclipse编译器将不会再次更新.kt类。 我猜JUnit启动器无法编译Kotlin测试类,我不知道如何解决它。
这是我的测试课:
package com.example.demo
import org.junit.Test
import org.junit.Assert.*;
import lhasa.demo.KotlinLhasaDemo
class KotlinSimpleTest {
@Test
fun testCallNormalKotlin()
{
val demo = KotlinLhasaDemo();
demo.normalFunction();
demo.stringFunction();
val number = demo.incrementFunction("1");
assertEquals("2", number);
}
}
这是我正在调用的类(效果很好):
package lhasa.demo
class KotlinLhasaDemo {
fun normalFunction() {
}
fun stringFunction(): String {
return "" // ; not required
}
fun incrementFunction(number: String): String {
var i = Integer.parseInt(number)
i++
return Integer.toString(i)
}
}
我正在使用带有Kotlin STS 0.8.6扩展名的STS 3.9.5。