每次我尝试在Jenkins上运行我的测试用例时都会出现Java错误

时间:2013-02-09 02:16:27

标签: java maven jenkins selenium-webdriver saucelabs

每次尝试使用Jenkins执行测试用例时,我的测试报告中都会显示以下Java错误。

错误1:

java.lang.IllegalArgumentException:没有枚举const类org.openqa.selenium.Platform.Windows 2003     在java.lang.Enum.valueOf(Enum.java:192)     在org.openqa.selenium.Platform.valueOf(Platform.java:30)     在WebDriverWithHelperTest.setUp(WebDriverWithHelperTest.java:76)     at java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:885)     at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:907)     在java.lang.Thread.run(Thread.java:619) ...删除了22个堆栈帧

错误2:

java.lang.NullPointerException:方法不应为null     at java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:885)     at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:907)     在java.lang.Thread.run(Thread.java:619) ...删除了17个堆栈帧

我能够使用Eclipse和Maven执行这些测试用例而没有任何问题。

有任何建议吗?

3 个答案:

答案 0 :(得分:1)

对于Jenkins作业,检查注入的环境变量,并将它们与从eclipse运行作业时设置的所有jar和其他环境变量进行比较。从Jenkins运行测试时,请确保您拥有所需的一切

答案 1 :(得分:0)

您可以尝试更改此代码:

capabilities.setCapability(CapabilityType.PLATFORM, Platform.valueOf(System.getenv("SELENIUM_PLATFORM"));

到此:

capabilities.setCapability(CapabilityType.PLATFORM, System.getenv("SELENIUM_PLATFORM"));

Jenkins插件正在发送平台的值,而不是org.openqa.selenium.Platform的枚举查找值

答案 2 :(得分:0)

感谢Roos,它现在解决了,我通过Jenkins Configuration发送身份验证信息,而不是在设置所需的作业/构建期间从OnDemand插件覆盖它。