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
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>