Search code examples
angularjsmavenjasminephantomjsibm-cloud

Angular Jasmine Tests Fail When Running In Linux - Unable to Locate PhantomJS Binary


Context:

I'm completely new to jasmine and only have a little bit of experience when working with AngularJS. I have some very basic Jasmine tests implemented simply to ensure that these can be ran fine before implementing the actual jasmine tests. The project is ran using Maven. The tests run throught he jasmine maven plugin. The issues arise when trying to build the project within IBM's Bluemix Build & Deploy pipeline despite working locally.

Here are the tests:

Test 1 Runs fine Both Locally and in Cloud

describe('JavaScript addition operator', function () {
    it('adds two numbers together', function () {
        expect(1 + 2).toEqual(3);
    });
});

Test 2 Runs fine Locally but fails in the Cloud

describe("App", function() {

    beforeEach(module('mainjs'));
    var ctrl, scope;

    beforeEach(inject(function($controller, $rootScope) {
        scope = $rootScope.$new();
        ctrl = $controller("studentHome", {
            $scope : scope
        });
    }));

    it("testing", function() {
         expect(1 + 2).toEqual(3);
    })
});

The tests are ran using the Jasmine Maven Plugin

           <plugin>
                <groupId>com.github.searls</groupId>
                <artifactId>jasmine-maven-plugin</artifactId>
                <version>2.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>test</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <preloadSources>
                        <source>webjars/jquery.js</source>
                        <source>jasmine-jquery</source>
                        <source>webjars/angular.js</source>
                        <source>webjars/angular-mocks.js</source>
                        <source>webjars/angular-route.js</source>
                    </preloadSources>
                    <jsSrcDir>${project.basedir}/src/main/resources/static/js</jsSrcDir>
                    <jsTestSrcDir>${project.basedir}/src/test/resources/static/js</jsTestSrcDir>
                    <specIncludes>
                        <include>*Spec.js</include>
                    </specIncludes>
                </configuration>
            </plugin>

Here a multiple errors, possibly caused by eachother:

Unable to Install phantomjs

[INFO] Downloading: http://repo.maven.apache.org/maven2/com/github/klieber/phantomjs/2.0.0/phantomjs-2.0.0-linux-x86_64.tar.bz2
[DEBUG] Writing tracking file /home/pipeline/.m2/repository/com/github/klieber/phantomjs/2.0.0/phantomjs-2.0.0-linux-x86_64.tar.bz2.lastUpdated
[ERROR] Unable to locate phantomjs binary
com.github.klieber.phantomjs.install.InstallationException: Unable to install phantomjs.
    at com.github.klieber.phantomjs.install.PhantomJsInstaller.install(PhantomJsInstaller.java:55)
    at com.github.klieber.phantomjs.locate.ArchiveLocator.locate(ArchiveLocator.java:45)
    at com.github.klieber.phantomjs.locate.CompositeLocator.locate(CompositeLocator.java:39)
    at com.github.klieber.phantomjs.locate.PhantomJsLocator.locate(PhantomJsLocator.java:58)
    at com.github.searls.jasmine.driver.WebDriverFactory.createPhantomJsWebDriver(WebDriverFactory.java:145)
    at com.github.searls.jasmine.driver.WebDriverFactory.createWebDriver(WebDriverFactory.java:68)
    at com.github.searls.jasmine.mojo.TestMojo.createDriver(TestMojo.java:264)
    at com.github.searls.jasmine.mojo.TestMojo.executeSpecs(TestMojo.java:235)
    at com.github.searls.jasmine.mojo.TestMojo.run(TestMojo.java:204)
    at com.github.searls.jasmine.mojo.AbstractJasmineMojo.execute(AbstractJasmineMojo.java:385)
    at com.github.searls.jasmine.mojo.TestMojo.execute(TestMojo.java:191)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
    at java.lang.reflect.Method.invoke(Method.java:495)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: com.github.klieber.phantomjs.download.DownloadException: Unable to resolve artifact.
    at com.github.klieber.phantomjs.download.RepositoryDownloader.download(RepositoryDownloader.java:64)
    at com.github.klieber.phantomjs.install.PhantomJsInstaller.install(PhantomJsInstaller.java:52)
    ... 31 more
Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: Could not find artifact com.github.klieber:phantomjs:tar.bz2:linux-x86_64:2.0.0 in central (http://repo.maven.apache.org/maven2)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:459)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:262)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:239)
    at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:295)
    at com.github.klieber.phantomjs.download.RepositoryDownloader.download(RepositoryDownloader.java:58)
    ... 32 more
Caused by: org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact com.github.klieber:phantomjs:tar.bz2:linux-x86_64:2.0.0 in central (http://repo.maven.apache.org/maven2)
    at org.eclipse.aether.connector.wagon.WagonRepositoryConnector$6.wrap(WagonRepositoryConnector.java:1012)
    at org.eclipse.aether.connector.wagon.WagonRepositoryConnector$6.wrap(WagonRepositoryConnector.java:1004)
    at org.eclipse.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:725)
    at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.lang.Thread.run(Thread.java:785)

- Failed to Instantiate Mode ng due to: TypeError: 'undefined' is not an object

 J A S M I N E   S P E C S
-------------------------------------------------------
[INFO] 
JavaScript addition operator
  adds two numbers together

App
  testing <<< FAILURE!
    * Error: [$injector:modulerr] Failed to instantiate module ng due to:
TypeError: 'undefined' is not an object (evaluating 'Function.prototype.bind.apply')
    at instantiate (http://localhost:38192/webjars/angular.js:4640)
    at provider (http://localhost:38192/webjars/angular.js:4454)
    at http://localhost:38192/webjars/angular.js:365
    at forEach (http://localhost:38192/webjars/angular.js:335)
    at http://localhost:38192/webjars/angular.js:4444
    at ngModule (http://localhost:38192/webjars/angular.js:2494)
    at invoke (http://localhost:38192/webjars/angular.js:4625)
    at runInvokeQueue (http://localhost:38192/webjars/angular.js:4518)
    at http://localhost:38192/webjars/angular.js:4527
    at forEach (http://localhost:38192/webjars/angular.js:321)
    at loadModules (http://localhost:38192/webjars/angular.js:4550)
    at createInjector (http://localhost:38192/webjars/angular.js:4430)
    at workFn (http://localhost:38192/webjars/angular-mocks.js:2922)
    at attemptSync (http://localhost:38192/webjars/jasmine/jasmine.js:1886)
    at http://localhost:38192/webjars/jasmine/jasmine.js:1874
    at http://localhost:38192/webjars/jasmine/jasmine.js:1859
    at http://localhost:38192/webjars/jasmine/jasmine.js:697
    at http://localhost:38192/webjars/jasmine/jasmine.js:363
    at http://localhost:38192/webjars/jasmine/jasmine.js:2479
    at attemptAsync (http://localhost:38192/webjars/jasmine/jasmine.js:1916)
    at http://localhost:38192/webjars/jasmine/jasmine.js:1871
    at http://localhost:38192/webjars/jasmine/jasmine.js:1859
    at http://localhost:38192/webjars/jasmine/jasmine.js:697
    at http://localhost:38192/webjars/jasmine/jasmine.js:2473
    at attemptAsync (http://localhost:38192/webjars/jasmine/jasmine.js:1916)
    at http://localhost:38192/webjars/jasmine/jasmine.js:1871
    at http://localhost:38192/webjars/jasmine/jasmine.js:1898
    at http://localhost:38192/webjars/jasmine/jasmine.js:1842
    at http://localhost:38192/webjars/jasmine/jasmine.js:2467
    at clearStack (http://localhost:38192/webjars/jasmine/jasmine.js:660)
    at http://localhost:38192/webjars/jasmine/jasmine.js:1881
    at http://localhost:38192/webjars/jasmine/jasmine.js:1898
    at http://localhost:38192/webjars/jasmine/jasmine.js:1842
    at complete (http://localhost:38192/webjars/jasmine/jasmine.js:371)
    at clearStack (http://localhost:38192/webjars/jasmine/jasmine.js:660)
    at http://localhost:38192/webjars/jasmine/jasmine.js:1881
    at http://localhost:38192/webjars/jasmine/jasmine.js:1859
    at http://localhost:38192/webjars/jasmine/jasmine.js:697
    at http://localhost:38192/webjars/jasmine/jasmine.js:363
    at http://localhost:38192/webjars/jasmine/jasmine.js:2479
    at attemptAsync (http://localhost:38192/webjars/jasmine/jasmine.js:1916)
    at http://localhost:38192/webjars/jasmine/jasmine.js:1871
    at http://localhost:38192/webjars/jasmine/jasmine.js:1859
    at http://localhost:38192/webjars/jasmine/jasmine.js:697
    at http://localhost:38192/webjars/jasmine/jasmine.js:2473
    at attemptAsync (http://localhost:38192/webjars/jasmine/jasmine.js:1916)
    at http://localhost:38192/webjars/jasmine/jasmine.js:1871
    at http://localhost:38192/webjars/jasmine/jasmine.js:1859
    at http://localhost:38192/webjars/jasmine/jasmine.js:697
    at http://localhost:38192/webjars/jasmine/jasmine.js:2332
    at http://localhost:38192/webjars/jasmine/jasmine.js:761
    at http://localhost:38192/webjars/jasmine/boot.js:141
http://errors.angularjs.org/1.5.3/$injector/modulerr?p0=ng&p1=TypeError%3A%20'undefined'%20is%20not%20an%20object%20(evaluating%20'Function.prototype.bind.apply')%0A%20%20%20%20at%20instantiate%20(http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fangular.js%3A4640)%0A%20%20%20%20at%20provider%20(http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fangular.js%3A4454)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fangular.js%3A365%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fangular.js%3A335)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fangular.js%3A4444%0A%20%20%20%20at%20ngModule%20(http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fangular.js%3A2494)%0A%20%20%20%20at%20invoke%20(http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fangular.js%3A4625)%0A%20%20%20%20at%20runInvokeQueue%20(http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fangular.js%3A4518)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fangular.js%3A4527%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fangular.js%3A321)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fangular.js%3A4550)%0A%20%20%20%20at%20createInjector%20(http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fangular.js%3A4430)%0A%20%20%20%20at%20workFn%20(http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fangular-mocks.js%3A2922)%0A%20%20%20%20at%20attemptSync%20(http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1886)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1874%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1859%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A697%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A363%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A2479%0A%20%20%20%20at%20attemptAsync%20(http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1916)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1871%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1859%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A697%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A2473%0A%20%20%20%20at%20attemptAsync%20(http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1916)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1871%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1898%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1842%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A2467%0A%20%20%20%20at%20clearStack%20(http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A660)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1881%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1898%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1842%0A%20%20%20%20at%20complete%20(http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A371)%0A%20%20%20%20at%20clearStack%20(http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A660)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1881%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1859%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A697%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A363%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A2479%0A%20%20%20%20at%20attemptAsync%20(http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1916)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1871%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1859%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A697%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A2473%0A%20%20%20%20at%20attemptAsync%20(http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1916)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1871%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A1859%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A697%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A2332%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fjasmine.js%3A761%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A38192%2Fwebjars%2Fjasmine%2Fboot.js%3A141 in http://localhost:38192/webjars/angular.js (line 4548)

- Spec Failiures

 Results: 2 specs, 1 failures, 0 pending

 ...


[ERROR] Failed to execute goal com.github.searls:jasmine-maven-plugin:2.1:test (default) on project StudyPlanner: There were Jasmine spec failures. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.github.searls:jasmine-maven-plugin:2.1:test (default) on project StudyPlanner: There were Jasmine spec failures.
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
    at java.lang.reflect.Method.invoke(Method.java:495)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoFailureException: There were Jasmine spec failures.
    at com.github.searls.jasmine.mojo.TestMojo.throwAnySpecFailures(TestMojo.java:308)
    at com.github.searls.jasmine.mojo.TestMojo.run(TestMojo.java:206)
    at com.github.searls.jasmine.mojo.AbstractJasmineMojo.execute(AbstractJasmineMojo.java:385)
    at com.github.searls.jasmine.mojo.TestMojo.execute(TestMojo.java:191)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    ... 19 more
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

When running locally this works fine. I'm presuming the error is to do with initialising the controller, but I'm struggling to understand why this would suddenly become a problem when running not locally (considering we are using maven to manage dependencies and the preloaded sources are included within the plugin's config).

Also, the above error isn't giving me much information, any pointers on how to get extended logs or greater direction would be very helpful.

Update It looks like the version (2.0.0) of PhantomJS may be the problem, but I am not sure where the version to be downloaded is defined. Is this default considering the jasmine plugin version? https://github.com/klieber/phantomjs-maven-plugin/issues/35


Solution

  • Not sure if this is a fix or a workaround, but I added in the phantomhjs-maven-plugin to force retrieval of version 2.1.1 of phantomjs for use by jasmine. Here are the two plugins together.

               <plugin>
                    <groupId>com.github.klieber</groupId>
                    <artifactId>phantomjs-maven-plugin</artifactId>
                    <version>0.7</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>install</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <version>2.1.1</version>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>com.github.searls</groupId>
                    <artifactId>jasmine-maven-plugin</artifactId>
                    <version>2.1</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>test</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <preloadSources>
                            <source>webjars/jquery.js</source>
                            <source>jasmine-jquery</source>
                            <source>webjars/angular.js</source>
                            <source>webjars/angular-mocks.js</source>
                            <source>webjars/angular-route.js</source>
                        </preloadSources>
                        <jsSrcDir>${project.basedir}/src/main/resources/static/js</jsSrcDir>
                        <jsTestSrcDir>${project.basedir}/src/test/resources/static/js</jsTestSrcDir>
                        <specIncludes>
                            <include>*Spec.js</include>
                        </specIncludes>
                        <webDriverClassName>org.openqa.selenium.phantomjs.PhantomJSDriver</webDriverClassName>
                        <webDriverCapabilities>
                            <capability>
                                <name>phantomjs.binary.path</name>
                                <value>${phantomjs.binary}</value>
                            </capability>
                        </webDriverCapabilities>
                    </configuration>
                </plugin>