Angular Jasmine测试在Linux中运行时失败-无法找到PhantomJS二进制文件



上下文:

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

最新更新