Я пытаюсь добавить тестовые классы в набор тестов.

Но когда я нажимаю сохранить, я получаю следующую ошибку:

enter image description here

Я пытаюсь добавить больше тестовых классов, используя Apex, как показано ниже, используя анонимное выполнение:

List<ApexClass> ac = [SELECT Id, Name, Body FROM ApexClass];
List<ApexClass> testClasses = new List<ApexClass>();
List<TestSuiteMembership > testSuiteMembership = new List<TestSuiteMembership>();
List<Id> existingApexClassInTestSuiteIdList = new List<Id>();
for( TestSuiteMembership testSuiteMembership : [SELECT ApexClassId FROM TestSuiteMembership WHERE ApexTestSuiteId ='<Test suite id>']){
    existingApexClassInTestSuiteIdList.add( testSuiteMembership.ApexClassId);
}
TestSuiteMembership testSuiteMembershipObject;
for(ApexClass a : ac){
    if(!existingApexClassInTestSuiteIdList.contains(a.Id) && (a.Body.containsIgnoreCase('@istest') || a.Body.contains('static testmethod'))){
        testSuiteMembershipObject = new TestSuiteMembership();
        testSuiteMembershipObject.ApexClassId = a.Id;
        testSuiteMembershipObject.ApexTestSuiteId = '<Test suite id>';
        testSuiteMembership.add( testSuiteMembershipObject);
    }
}
insert testSuiteMembership;

Но не удалось вставить объекты и получить ошибку ниже:

enter image description here

Альтернативный вариант: Я могу создать несколько наборов тестов и добавить 200 классов в каждый набор.

Как мы можем добавить более 200 тестовых случаев в один набор тестов?

1
वरुण 23 Дек 2019 в 14:01
1
Согласно сообщению об ошибке на первом снимке экрана, в нем говорится о вставке записей через остальные, мыло или инструментальный API. Консоль разработчика по-прежнему является вершиной и находится внутри Salesforce.
 – 
Raul
23 Дек 2019 в 14:44

1 ответ

Чтобы использовать API REST для вставок, как предлагает сообщение об ошибке и Рауль, попробуйте заменить это:

insert testSuiteMembership

С этим:

String baseURL = URL.getSalesforceBaseUrl().toExternalForm();
String endpoint = baseURL + '/services/data/v46.0/sobjects/TestSuiteMembership';      
HttpRequest req = new HttpRequest();
req.setEndpoint(endpoint); 
req.setMethod('POST'); 
req.setHeader('Content-Type', 'application/json;charset=UTF-8');
req.setHeader('Authorization', 'Bearer ' + UserInfo.getSessionID());  
req.setBody(json.serializePretty(testSuiteMembership));
Http http = new Http();   
HttpResponse res = http.send(req);  
System.debug('Response Code > ' + res.getStatusCode());
System.debug(' Response > ' + res.getBody());
1
Ideasforce 23 Дек 2019 в 20:11