I’m inserting several ApexTestQueueItem records into an Org via the Partner API to queue the corresponding Apex Classes for asynchronous testing. The only field I’m populating is the ApexClassId. (Steps as per Running Tests Using the API)
After the tests have run and I retrieve the corresponding ApexTestResult record(s) the ApexLogId field is always null.
For the ApexLogId field the help documents have the Description:
Points to the ApexLog for this test method execution if debug logging is enabled; otherwise, null
How do I enable debug logging for asynchronous test cases?
I’ve used the DebuggingHeader in the past with the runTests() method but it doesn’t seem to be applicable in this case.
Update:
I’ve found if I add the user who owns the Salesforce session under Administration Setup > Monitoring > Debug Logs as a Monitored User the ApexLogId will be populated. I’m not sure how to do this via the Partner API or if it is the correct way to enable logging for asynchronous test cases.
You’ve got it right. That’s the intended way to get a log.