Jasmine Maven插件包括我使用文件协议的脚本

时间:2012-08-10 05:20:43

标签: javascript jasmine jasmine-maven-plugin

我正在尝试将javascript单元测试添加到我们的项目中,并了解Jasmine Maven Plugin。我按照指示操​​作,最后在我的pom.xml中输入:

<plugin>
    <groupId>com.github.searls</groupId>
    <artifactId>jasmine-maven-plugin</artifactId>
    <version>1.2.0.0</version>
    <extensions>true</extensions>
    <executions>
        <execution>
            <goals>
                <goal>test</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <jsSrcDir>${project.basedir}/src/main/webapp/resources/js</jsSrcDir>
        <jsTestSrcDir>${project.basedir}/src/test/javascript</jsTestSrcDir>
    </configuration>
</plugin>

我运行mvn jasmine:bdd并获得预期的输出。然后我转到http://localhost:8234,我得到的只是一个空白屏幕。我查看控制台,看看每个js文件:

Not allowed to load local resource: file:///absolute/path/to/the/js/src/main/webapp/resources/js/myJS.js

页面的HTML包含我的脚本:

<script type="text/javascript" src="file:/absolute/path/to/the/js/src/main/webapp/resources/js/myJS.js"></script>

所以我的问题是,为什么插件使用文件协议来包含js?这通常是如何工作的吗?如果是这样,我如何让我的浏览器允许本地资源?有没有办法阻止它这样做?

万一重要,我尝试使用Firefox和Chrome,我使用的是OS X.

1 个答案:

答案 0 :(得分:2)

我最近遇到了这个问题,问题是我的项目位于一个包含空格的目录中。

这是在Windows上,但在OSX上可能是相同的,所以值得一试。

例如,我的项目位于这样的目录中:

C:\directory with spaces\myproject

将其更改为以下内容已修复jasmine:bdd命令:

C:\directorywithoutspaces\myproject

祝你好运!