我想在RunTests完成后调用sendmail,但它无法正常工作
<project name="Sample usage of Salesforce Ant tasks" basedir="." xmlns:sf="antlib:com.salesforce" default="RunTests">
<!--******************************************* P R O P E R T Y F I L E *********************************************-->
<property file="build.properties"/>
<property environment="env"/>
<!--*******************************************RunTests***********************************************************-->
<target name="RunTests">
<record name="RunTest.log" action="start"/>
<sf:compileAndTest username="${sf.backup_username}" password="${sf.backup_password}" serverurl="${sf.backup_serverurl}" >
<runTests Alltests="true"/>
</sf:compileAndTest>
<record name="RunTest.log" action="stop"/>
</target>
<target name="sendmail" depends="RunTests">
<mail mailhost="email.corp.testcompany.com" mailport="25" subject="Run all tests - Sandbox 1337" messagefile="RunTest.log">
<from address="user2@testcompany.com"/>
<replyto address="user2@testcompany.com"/>
<to address="user2@testcompany.com"/>
</mail>
</target>
</project>
我得到以下失败 -
建立失败 C:\ ANT_HOME \ QA_1337_TestRunner \ build.xml:8:失败:
即使先前的任务失败,我还能以任何方式执行“sendemails”任务。
答案 0 :(得分:3)
尝试运行
ant sendmail
或将默认设置更改为sendmail
<project name="Sample usage of Salesforce Ant tasks" basedir="." xmlns:sf="antlib:com.salesforce" default="sendmail">
然后执行
ant
修改强>
在快速查看任务sf:compileAndTest
的{{3}}之后,我没有找到任何关于如何在测试和/或编译失败时避免目标执行失败的有用信息。 (也许是salesforce doc属性,但我不确定这是你需要的,也不能通过ant任务传递它。
所以我认为你必须在外部处理目标执行失败。为此,您可以使用checkonly
看起来像这样:
<trycatch property="foo" reference="bar">
<try>
<record name="RunTest.log" action="start"/>
<sf:compileAndTest username="${sf.backup_username}" password="${sf.backup_password}" serverurl="${sf.backup_serverurl}" >
<runTests Alltests="true"/>
</sf:compileAndTest>
<record name="RunTest.log" action="stop"/>
</try>
<catch>
<echo>Got error while running compileAndTest</echo>
</catch>
<finally>
<mail mailhost="email.corp.testcompany.com" mailport="25" subject="Run all tests - Sandbox 1337" messagefile="RunTest.log">
<from address="user2@testcompany.com"/>
<replyto address="user2@testcompany.com"/>
<to address="user2@testcompany.com"/>
</mail>
</finally>
</trycatch>
请注意,您可以使用<catch>
部分在测试失败时发送特殊电子邮件。
property
和reference
可用于获取有关失败的信息(如果有)。
答案 1 :(得分:1)
我想您要查看failureProperty
和haltOnFailure
属性。
此主题的答案中有更多信息: https://stackoverflow.com/a/134563/708777