如何在Play 2.1中访问测试资源?

时间:2013-04-02 15:23:21

标签: scala playframework-2.1

我正在尝试使用以下代码行访问.jpg文件夹中的src文件:

getClass().getResource("/teste.jpg")

这会导致NullPointerException

我尝试将文件放在app/根目录中。我也尝试将它放在test/目录中,也放在test/resources中。

当我从Eclipse运行测试时,它运行正常,但它不是使用play test从命令行运行。

如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

我相信您可以使用

来实现它
Play.application().getFile("file-relative-to-root")

它取决于正在运行的应用程序,但对于单元测试,您可以创建自己的应用程序。请查看API文档。

http://www.playframework.com/documentation/api/2.1.0/scala/index.html#play.api.Application

答案 1 :(得分:1)

按照Anatomy of a Play application中的说明将文件放在publicapp/assets下。您还可以在test/resources下获得测试资源。

[root]> help resourceDirectory
Default unmanaged resource directory, used for user-defined resources.

[root]> show test:resourceDirectory
[info] root/test:resourceDirectory
[info]  /Users/jacek/dev/sandbox/play-new-app/test/resources

使用其中一个目录中的资源文件,您可以按如下方式获取它们:

io.Source.fromInputStream(getClass.getResourceAsStream("/teste.jpg"))