如何从ant build.xml调用jasmine-node

时间:2012-02-15 18:24:59

标签: javascript node.js ant jasmine

我正在尝试使用jasmine-node来测试js文件。我们编写了一些规范,当我们从命令行进行测试时,一切都很顺利。

但是,我们试图将我们的测试包含在我们的ant构建中,并尝试了几种组合:

    <exec executable="jasmine-node" dir="${dir.src}" verbose="true" failonerror="true" outputproperty="stdout">
        <arg value="--verbose" />
        <arg value="--test-dir" />
        <arg path="${dir.src}" />
    </exec>

dir.src只是我们的js文件和规范所在的基本目录。这些组合一直试图将两个值都移动到一条线上,将所有三个值移动到一条线等等。

正如我所说,将“jasmine-node --verbose --test-dir目录”放在命令行中效果很好。

如果有人可以在这里提供任何帮助,那就太棒了。

谢谢!

编辑: 我在trycatch块中有这个。这就是整个事情:

    <trycatch>
        <!-- execute tests -->
        <try>
            <apply executable="jasmine-node" dir="${dir.src}" verbose="true" failonerror="true" outputproperty="stdout">
                <arg value="--verbose" />
                <arg value="--test-dir" />
                <arg path="${dir.src}" />
            </apply>
        </try>
        <catch>
            <property name="error" value="true" />
            <echo message="Jasmine tests failing" />
        </catch>
    </trycatch>

因此,控制台中的输出是“Jasmine测试失败”

2 个答案:

答案 0 :(得分:2)

删除trycatch块之后,我收到一条错误消息,说你在exec中不能有verbose =“true”,虽然我会发誓我之前在某处看过。详细总是让它失败,但因为我有一个陷阱,我没有得到一个很好的错误信息。我现在要把trycatch放回去,因为我可以运行命令,因为如果开发人员构建没有安装jasmine,我们会希望构建失败。

这是我工作的茉莉花节点电话。

<exec executable="jasmine-node" failonerror="true">
   <arg line="--verbose ${dir.src}" />
</exec>

这打印了我在命令行中运行jasmine-node时得到的正常跟踪内容,这正是我想要的。

此外,上面的申请只是我试图让它工作的东西。我真正想要的是一个高管,这是我最初的所有。

答案 1 :(得分:0)

trycatch隐藏了一个调用apply任务的错误。 ANT文档指出:

  

至少需要一个文件集或文件列表,并且您不能指定多个映射器。

此外,apply任务通常用于对文件集中的每个文件调用命令...我不熟悉jasmine-node但我怀疑你只想对目录调用一次?