Java 创造游戏!仅用于selenium测试的框架标记

Java 创造游戏!仅用于selenium测试的框架标记,java,selenium,playframework,Java,Selenium,Playframework,我正在用剧本写一个硒测试!框架和一些测试有共同点。我想把那些普通的片段编成剧本!标签。在生产代码中,标签位于app/views/tags下。然而,标记在哪里才能被测试模板看到 我尝试将我的标记置于test/tags和test/views/tags下,但这两种方式都导致了错误: The template tags/Login.html or tags/Login.tag does not exist. 如果我把标签放在app/views/tags下,它可以正常工作。但很明显,此标记仅用于测试目的

我正在用剧本写一个硒测试!框架和一些测试有共同点。我想把那些普通的片段编成剧本!标签。在生产代码中,标签位于app/views/tags下。然而,标记在哪里才能被测试模板看到

我尝试将我的标记置于test/tags和test/views/tags下,但这两种方式都导致了错误:

The template tags/Login.html or tags/Login.tag does not exist.

如果我把标签放在app/views/tags下,它可以正常工作。但很明显,此标记仅用于测试目的。

标记必须位于app/views/Tags下(它的任何子文件夹),否则Play将无法获取它们。您可以创建以下路径:app/views/tags/testing并将仅测试标签放在其中,以便开发人员知道不要使用它们

要在该文件夹中使用标记演示,请使用:

#{testing.Demo /}
如果您想在生产中禁用它们(为了更安全),请检查api。在标记中添加以下内容:

#{if play.mode.isDev()}
     tag code
#{/if}

据我所知,标签必须位于app/views/Tags或任何子文件夹下。无论如何,我确信您可以在模块中定义标记,并仅在测试模式下导入。有点复杂,但很简洁。

我尝试了if语句,但返回的错误是:引发的异常为MissingMethodException:没有方法签名:static play.play$Mode.isDev()适用于参数类型:()。我将它改为#{if play.mode.name()=='DEV'},这很有效。我更喜欢你的解决方案,因为它更干净,但你知道为什么会出现错误吗?mmm play是模板中的“默认”对象,如果你的修改有效,请使用它。我刚刚注意到isDev()不是静态的(我的错!),所以它可能应该是类似于#{if play.mode.isDev()}的东西