由于测试类失败,Salesforce部署错误

时间:2012-02-07 06:30:56

标签: deployment salesforce

由于某些测试类调用批处理顶点类,我们遇到了部署错误。发生的错误是:

“System.unexpectedException:在测试方法中只能调用一个executeBatch。”

在我们的测试类中,有insert和update语句,它们又​​从触发器调用批处理顶点。我们还尝试使用“Test.isRunningTest()”方法限制批处理查询,但我们再次面临同样的错误。

代码在沙盒中工作正常,错误只在部署到生产时出现。

此外,导致错误的测试类在生产中之前工作正常。

请为上述错误提供一些指示/解决方案。

谢谢。

1 个答案:

答案 0 :(得分:0)

我建议最好的方法是确保触发器在Test.IsRunningTest()true时不执行批处理,然后使用它自己的测试方法测试批处理类。我怀疑你的触发器被触发两次,因此创建批处理实例并运行多个。

使用专用测试方法,您可以执行指定查询限制的批处理,并且应使用可选的批处理大小参数来控制要执行的调用次数,即如果限制为50,则执行此操作:

Database.executeBatch(myBatchInstance, 25);

它仍然需要两次调用execute()方法来覆盖所有记录,这就是你遇到问题的地方。