在AWS设备场上运行我的盖伦测试的问题

问题描述:

我面临着在AWS设备场上运行我的盖伦测试的问题,我正在将我的.gspec文件打包在src/tests/java文件夹下,并在我的POM.xml中提供相同的内容,它在农场的测试它抛出FileNotFound异常即:在AWS设备场上运行我的盖伦测试的问题

java.io.FileNotFoundException: src/test/java/HomePage.gspec at 
com.galenframework.speclang2.pagespec.PageSpecReader.read(PageSpecReader.java:43) 
at com.galenframework.api.Galen.checkLayout(Galen.java:68) at 
com.galenframework.api.Galen.checkLayout(Galen.java:59) at 
com.galenframework.api.Galen.checkLayout(Galen.java:154) at 
com.galenframework.api.Galen.checkLayout(Galen.java:128) at 

这就像在本地设备上的魅力。

我是AWS设备农场团队的一名工程师。

我不熟悉盖伦测试框架。我们还没有正式测试该框架,声称它可以在设备农场上使用。

然而,几件事情,我可以从你的描述使出来:

1 .gspec文件:看来这个框架正在阅读该文件即可开始使用。任何基于appium/selenium的测试文件都可以在打包时放在src/test/resources下,这应该将文件放在jar根目录下的* SNAPSHOT-tests.jar文件中。

这个jar文件然后在测试执行环境的CLASSPATH中可用,这意味着您可以直接访问它。通过在* tests.jar文件中查找.gspec文件的存在,可以在上传到设备场之前通过验证来节省一些时间。

另一种方法是将文件放在src/test/resources/com(或任何包结构)下。然后,要访问测试代码中的文件,您可以假定该文件在资源下的包结构下存在,因此您的案例文件路径中应为“com/yourfile.gspec”。

希望这可以帮助您进一步进行。

+0

您是否获得了同样的错误,你最初发布? – NikofTime

+0

感谢您的回复。 根据您的建议,我们尝试了类似的方式,即将.gspec文件保存在src/test/resources/com下,并直接保存在资源中。我们也可以在打包的JAR中看到.gspec文件,即SNAPSHOT-tests.jar。同时也删除了这个JAR的内容,它确实有gspec文件。所以所有这些方法都没有奏效。 此外,我们假设我们确实拥有农场上的物理设备,因为我们如前所述,我们能够在本地成功运行物理设备上的Galen测试。 –

+0

是的,我收到了同样的错误。找不到文件 –

嗨请找到我们正在使用Maven包的文件路径和POM文件的代码片断的附加屏幕截图。

POMFile

FilePathCode

+1

而不是绝对路径尝试使用相对路径,例如'HomePage.gspec'。您可以尝试我的示例项目之一,如果它适用于AWS设备场:https://github.com/hypery2k/galen_samples/tree/master/junit – hypery2k

+0

嗨, 我已更改文件路径,现在它抛出UnsatisfiedLinkError异常: java.lang.UnsatisfiedLinkError:/usr/lib/jvm/jdk1.8.0_65/jre/lib/amd64/libawt_xawt.so:libXtst.so.6:无法打开共享对象文件:在java中没有这样的文件或目录。 lang.ClassLoader $ NativeLibrary.load(Native Method)at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1938)at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1821)at 请帮忙这个 Regards .. –

+0

嗨, 你能分享你的想法吗? Regards .. –