quinta-feira, 16 de março de 2017

Erro UNABLE_TO_LOCK_ROW em execução de várias classes de teste em paralelo

Recentemente, antes de iniciar um desenvolvimento no Salesforce, resolvi rodar todas as classes de teste! Pra ter certeza que estava tudo funcionando antes de eu "meter a mão" :) Bem, aí recebi a seguinte mensagem de erro em várias classes:


 System.DmlException: Insert failed. First exception on row 0; first error: UNABLE_TO_LOCK_ROW, unable to obtain exclusive access to this record or 1 records  

E esse erro, só acontecia quando rodava em massa! Quando rodava cada classe individualmente, o erro não acontecia!
Me lembrei que já havia passado por esse problema há um tempo atrás e havia uma opção de não rodar testes em paralelo, que "resolvia" (veja bem, o resolvia está entre aspas) esse problema!



Bem, se você está com esse problema, ao rodar várias classes em paralelo, acesse a parte de configurações do Salesforce e pesquise pela opção Execução de teste do Apex. Em seguida, clique no botão Opções. Marque a opção Desativar o teste paralelo do Apex:





Dessa forma, você pode executar todos os testes, sem o erro System.DmlException: Insert failed. First exception on row 0; first error: UNABLE_TO_LOCK_ROW, unable to obtain exclusive access to this record or 1 records


Bem por hoje é isso!




Nenhum comentário: