我使用 Apex Test Execution 屏幕在沙盒组织中运行所有测试用例。
几个测试用例通过然后进展似乎挂在一个以前工作的测试用例上。
然后我使用Abort按钮尝试取消似乎有效的测试执行。
现在,任何后续运行测试的尝试都不会超过“已排队”状态。
选择单个顶点类并使用同步运行测试按钮会导致以下错误消息:
组织管理已锁定
您要求的更改需要 salesforce.com暂时锁定您组织的管理 建立。但是,管理设置已被锁定 另一个变化。请等待上一个操作完成 稍后再试。
尝试从Eclipse保存对Apex类的更改会产生错误:
- 保存错误:无法对所有文件执行保存:您请求的更改需要> salesforce.com暂时锁定您组织的管理设置。然而 管理设置已被另一个更改锁定。请等待>之前的操作完成,然后再试一次。 (ALREADY_IN_PROCESS)
如果我查询ApexTestQueueItem表,似乎有3个测试用例处于处理状态。
如何从处理状态清除这些ApexTestQueueItems?我假设这会让我超过组织管理锁。
我确实检查了设置审核跟踪,最近的唯一更改是从我的用户到Apex Classes。
答案 0 :(得分:5)
已更新
我的支持案例已升级为“高级支持团队”。他们对我的沙箱做了一些事情,并建议这是一个已知的问题,并且只能通过Apex类UI(例如https://xyz.salesforce.com/01pL00000000001)一次运行一个类的测试用例。
我应该不通过以下方式运行测试用例:
我认为Eclipse目前对单个测试用例来说还不错,因为它本质上不是异步。
我希望能够告诉你他们对我的问题沙盒组织做了什么,但我现在还不确定。希望developerforce论坛上的一个平行问题会产生一些答案 - Using Apex Test Execution results in a "Organization Administration Locked" that doesn't clear
来自Twitter的一些有趣信息:
"...been working on it all day. Hope to have the fix out next wk." - Rich Unger
所以回答我自己的问题“如何从处理状态中清除这些ApexTestQueueItems?”
答案:如果您遇到“已知问题”,目前无法使用。唯一的选择是提出支持案例并等待Salesforce清除它。
我尝试了以下匿名apex来清除处理队列中的顶点测试用例:
List<ApexTestQueueItem> items = [Select Id,ApexClassId,Status,ExtendedStatus,ParentJobId from ApexTestQueueItem where Status != 'Completed'];
for(ApexTestQueueItem atqi : items) {
atqi.Status = 'ABORTED';
}
update items;
对于ApexTestQueueItem的后续SOQL查询,这似乎没有所需的结果,“状态”列保持不变。
我在[管理设置&gt;]下寻找Apex工作。监控&gt; Apex Jobs]但没有出现JobType = TestRequest的记录。
接下来,我尝试使用匿名顶点中止作业:
System.abortJob('707L0000000FgZIIA0');
AsyncApexJob将状态更改为“已中止”。
答案 1 :(得分:1)
在我的一个组织中,它在大约16个小时后解锁,我能够通过一次运行一个测试类来避免再次锁定它,但不是通过Apex Text Execution页面,我要么通过UI中的IDE或Apex类页面
答案 2 :(得分:0)
你应该为此提起诉讼。在不了解更多信息的情况下,比如您的组织,我们无法分辨出真正发生的事情。短期解决方案可能会让我们在最后杀死僵尸处理测试。
Rich Unger Apex代码团队
答案 3 :(得分:0)