我正在尝试使用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测试失败”
答案 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但我怀疑你只想对目录调用一次?