上下文:
我对jasmine完全陌生,在使用AngularJS时只有一点经验。我实施了一些非常基本的Jasmine测试,只是为了确保在实施实际的Jasmin测试之前,这些测试可以运行得很好。该项目使用Maven运行。测试通过jasmine maven插件运行。当试图在IBM的Bluemix-build&部署管道,尽管在本地工作。
以下是测试:
测试1本地和云中运行良好
describe('JavaScript addition operator', function () {
it('adds two numbers together', function () {
expect(1 + 2).toEqual(3);
});
});
测试2本地运行良好,但在云中失败
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);
})
});
测试使用Jasmine Maven插件运行
<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>
这里有多个错误,可能是彼此造成的:
无法安装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)
-无法实例化模式ng,原因是:TypeError:"undefined"不是对象
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)
-规格故障
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
当在本地运行时,这很好。我推测错误与初始化控制器有关,但我很难理解为什么在非本地运行时会突然出现问题(考虑到我们使用maven来管理依赖关系,并且预加载的源代码包含在插件的配置中)。
此外,上面的错误并没有给我太多信息,任何关于如何获得扩展日志或更大方向的指针都会非常有用。
更新看起来PhantomJS的2.0.0版本可能是问题所在,但我不确定要下载的版本是在哪里定义的。考虑到jasmine插件版本,这是默认设置吗?https://github.com/klieber/phantomjs-maven-plugin/issues/35
不确定这是修复还是解决方法,但我在phantomhjs-maven插件中添加了强制检索版本为2.1.1的phantomjs供jasmine使用。这是两个插件。
<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>