使用Apex Test Execution后,Salesforce处于组织管理锁定状态

Dan*_*ger 7 salesforce

我使用Apex Test Execution屏幕在沙箱组织中运行所有测试用例.

几个测试用例通过然后进展似乎挂在一个以前工作的测试用例上.

然后我使用Abort按钮尝试取消似乎有效的测试执行.

现在,任何后续运行测试的尝试都不会超过Queued状态.

ApexTestQueueItem卡在排队状态

选择单个顶点类并使用同步"运行测试"按钮会导致以下错误消息:

组织管理已锁定

您请求的更改要求salesforce.com临时锁定组织的管理设置.但是,管理设置已被另一个更改锁定.请等待上一个操作完成,然后再重试.

尝试从Eclipse保存对Apex类的更改会产生错误:

  • 保存错误:无法对所有文件执行保存:您请求的更改要求> salesforce.com临时锁定组织的管理设置.但是,管理设置已被另一个更改锁定.请等待>之前的操作完成,然后稍后再试.(ALREADY_IN_PROCESS)

如果我查询ApexTestQueueItem表,似乎有3个测试用例符合处理状态.

ApexTestQueueItem卡在Processing中

如何从处理状态清除这些ApexTestQueueItems?我假设这会让我超过组织管理锁定.

我确实检查了设置审计跟踪,最近的唯一更改是从我的用户到Apex Classes.

Dan*_*ger 5

更新

我的支持案例已升级为"高级支持团队".他们对我的沙箱做了一些事情,并建议这是一个已知的问题,并且只能通过Apex类UI(例如https://xyz.salesforce.com/01pL00000000001)一次运行一个类的测试用例.

我应该通过运行测试案例:

  • Apex测试执行UI
  • 手动创建ApexTestQueueItem记录
  • Apex课程 - [运行所有测试]

我假设Eclipse目前对单个测试用例没问题,因为它本质上不是异步的.

我希望能够告诉你他们对我的问题沙盒组织做了什么,但我现在还不确定.希望developerforce论坛上的一个平行问题会产生一些答案 - 使用Apex Test Execution导致"组织管理已锁定",但不清楚

来自Twitter的一些有趣信息:

"......整天都在努力.希望下周能解决这个问题." - Rich Unger

"@rich_unger很高兴听到,感谢更新,任何短期解决方法?如果没有,我会把我的代码移到另一个组织直到那时" - 迈克尔加拉格尔."@ mjgallag24解决方法是不使用异步测试" - Rich Unger

那么回答我自己的问题"如何从处理状态中清除这些ApexTestQueueItems?"

答:如果您遇到"已知问题",目前无法使用.唯一的选择是提出支持案例并等待Salesforce清除它.


我尝试了以下匿名顶点来清除处理队列中的顶点测试用例:

List<ApexTestQueueItem> items = [Select Id,ApexClassId,Status,ExtendedStatus,ParentJobId from ApexTestQueueItem where Status != 'Completed'];
for(ApexTestQueueItem atqi : items) {
    atqi.Status = 'ABORTED';
}
update items;
Run Code Online (Sandbox Code Playgroud)

这似乎没有所需的结果,因为在ApexTestQueueItem的后续SOQL查询中,Status列保持不变.

我在[管理设置>监控> Apex作业]下查找了Apex作业,但没有出现JobType = TestRequest的记录.

接下来我尝试使用匿名顶点中止作业:

System.abortJob('707L0000000FgZIIA0');
Run Code Online (Sandbox Code Playgroud)

AsyncApexJob将状态更改为"已中止".