BB Reports has hardcoded path to firefox library
Closed this issue · 2 comments
DeChrish commented
@Shaihuludus
While building bobcat in my local got below error.
OS: MAC
-------------------------------------------------------------------------------
Test set: com.cognifide.qa.bb.logging.reporter.ReporterTest
-------------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.202 sec <<< FAILURE!
shouldCreateLogEntries(com.cognifide.qa.bb.logging.reporter.ReporterTest) Time elapsed: 0.708 sec <<< ERROR!
com.google.inject.ProvisionException: Guice provision errors:
1) Error in custom provider, java.lang.IllegalStateException: Specified firefox binary location does not exist or is not a real file: c:/Program Files (x86)/Mozilla Firefox 24/firefox.exe
while locating com.cognifide.qa.bb.provider.selenium.webdriver.WebDriverProvider
while locating org.openqa.selenium.WebDriver
1 error
at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:987)
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1009)
at com.cognifide.qa.bb.junit.WebDriverClosingRule.after(WebDriverClosingRule.java:46)
at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:50)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at com.cognifide.qa.bb.junit.TestRunner.runMethod(TestRunner.java:167)
at com.cognifide.qa.bb.junit.TestRunner.runChild(TestRunner.java:127)
at com.cognifide.qa.bb.junit.TestRunner.runChild(TestRunner.java:61)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at com.cognifide.qa.bb.junit.TestRunner.run(TestRunner.java:140)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: java.lang.IllegalStateException: Specified firefox binary location does not exist or is not a real file: c:/Program Files (x86)/Mozilla Firefox 24/firefox.exe
at com.google.common.base.Preconditions.checkState(Preconditions.java:444)
at org.openqa.selenium.firefox.internal.Executable.<init>(Executable.java:46)
at org.openqa.selenium.firefox.FirefoxBinary.<init>(FirefoxBinary.java:138)
at org.openqa.selenium.firefox.FirefoxOptions.getBinaryOrNull(FirefoxOptions.java:219)
at org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:200)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:108)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:137)
at com.cognifide.qa.bb.provider.selenium.webdriver.WebDriverType$1.create(WebDriverType.java:57)
at com.cognifide.qa.bb.provider.selenium.webdriver.WebDriverProvider.create(WebDriverProvider.java:107)
at com.cognifide.qa.bb.provider.selenium.webdriver.WebDriverProvider.get(WebDriverProvider.java:98)
at com.cognifide.qa.bb.provider.selenium.webdriver.WebDriverProvider.get(WebDriverProvider.java:48)
at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:55)
at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974)
... 26 more
mkrzyzanowski commented
Hi @DeChrish,
what version of Bobcat are you using? With the latest release (1.3.0) we bumped Selenium to 3.11, which means running tests on Firefox requires running it through GeckoDriver. You need an executable on your machine and you can point Bobcat to it either by putting the path to the driver in system's PATH or you can use the webdriver.gecko.driver
property.
At the moment in your case the path comes from one of the properties file - take a look under src/main/cfg/common
in the webdriver.properties
.
mkrzyzanowski commented
Closing this for now, let us know in case of any further problems.