maven - IntelliJ UnitTests Kotlin 和 Java 同名
问题描述
我们大学有一个项目,他们为我们创建了空的 Java 和 Kotlin 类,以添加我们的代码和一些单元测试,以检查我们是否完成了作业。我已经被放在 Kotlin 类中,因此必须解决 Kotlin 中的问题并忽略 Java。我现在的问题是 UnitTests 执行 Java 代码而不是 Kotlin。
例如:Java 类:
package string;
public class Arrow {
public static String arrow(int length, boolean doubleEnded, boolean doubleLine) {
// TODO Implement the method
return "java";
}
}
Kotlin 类:
@file:JvmName("Arrow")
package string
// TODO Implement the function
fun arrow(length: Int, doubleEnded: Boolean, doubleLine: Boolean): String{
return "kotlin";
}
单元测试和结果:
package string;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
class ArrowTest {
static final int NBR_TESTS = 20;
@Test
void arrow0() {
Assertions.assertEquals("", Arrow.arrow(0, true, true));
Assertions.assertEquals("", Arrow.arrow(0, false, true));
Assertions.assertEquals("", Arrow.arrow(0, true, false));
Assertions.assertEquals("", Arrow.arrow(0, false, false));
}
}
org.opentest4j.AssertionFailedError:
Expected :
Actual :java
我该怎么做才能让 UnitTests 执行 Kotlin 代码而不是 Java?他们告诉我们,我们不应该改变测试中的任何东西。
解决方案
正如@user3159253 评论更改 sourceDirectory 为我所做的那样。我打开了模块设置并删除了 Java 作为源并添加了 Kotlin。
推荐阅读
- ios - 无法设置 UIViewController 导航栏的颜色
- php - AdminLTE-3 激活侧导航栏
- python - 设置限制 Matplotlib 或 PyQtGraph 的单个 Y 标签?
- android - 如何在广播接收器中注销传感器(加速度计)
- c# - Mongo DB 获取正在检索的数据/文档的统计信息
- python - 为什么这个 PyQt5 代码不显示文本行编辑器?
- php - 如何在浏览器中显示文件而不是使用 laravel 5.6 下载?
- airflow - 未找到气流实验 API deny_all 模块
- java - 如何使用 localeCompare 根据标记对名称进行排序?
- php - 如何停止 php 中的 url 垃圾邮件已将 url 验证放在 msg 字段上但不起作用