我正在Scala(播放框架)中编写集成测试方法。测试类是SourceIntegrationTest。我已经在/ test / resources中放置了一个文件source.json。我知道“ sbt将文件从src / test / resources复制到target / scala- [scalaVersion] / test-classes” as described in this answer.但是,使用那里引用的答案仅对我在IntelliJ中运行测试有效。在终端中运行sbt it:testOnly SourceIntegrationTest
时,测试失败,并显示NullPointerException。 sbt找不到source.json。在终端中运行集成测试时如何获取sbt来查找文件?
我的测试方法如下:
@Test
def testGetSource(): Unit = {
val jsonSource: String = Source.fromInputStream(getClass.getClassLoader.getResourceAsStream("source.json")).mkString
val json: JsValue = Json.parse(jsonSource)
val source = controller.getSource(json)
assertEquals(source.sourceName = "Premier")
}
答案 0 :(得分:1)
编写集成测试时,测试文件未放置在测试文件夹中。您需要创建另一个目录进行集成测试。现在,源文件夹将包含三个目录main(测试)。并且所有集成测试将保存在该文件夹中。您可以阅读有关here
的信息