function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Lucas AndradeLucas Andrade 

Code coverage error when deploying

Hi,

I'm trying to deploy an change set to my org, but is saying my trigger has a code coverage of 0%, but i already created a teste class and the code covergare doesn't update! I'v already tried everything i know. Here's the code:

P.S.: The API names are in portuguese, but i think i doesn't matter because i need to know why the trigger is not been activaded

Trigger:
 
trigger triggerMembroDisparo on MembroDisparo__c (before insert, before update, before delete) {

	if(Trigger.isBefore) {
		if(Trigger.isInsert) {
			Campanhas_MembroDisparoBO.getInstance().calcularTotalHierarquia(Trigger.new);
		}

		if(Trigger.isUpdate) {
			Campanhas_MembroDisparoBO.getInstance().calcularTotalHierarquia(Trigger.new);
		}

		if(Trigger.isDelete) {
			Campanhas_MembroDisparoBO.getInstance().calcularTotalHierarquia(Trigger.old);
		}
	}
}

and here's the test class, where i'm inserting new records in the object:
 
@isTest
private class triggerMembroDisparoTest {
	
	@isTest 
	static void testaTrigger()
	{
		try 
		{
		  
			AgrupamentoCampanhas__c agrupamentoPai;
			AgrupamentoCampanhas__c agrupamentoFilho;
			Campanha__c campanhaConceito;
			Campanha__c campanhaPadrao;
			Map<String, RecordType> mapRecordTypeCampanha;
			DisparoEfetuado__c disparoEfetuado;
			List<MembroDisparo__c> lstMembrosDisparo;

			mapRecordTypeCampanha = RecordTypeDAO.getInstance().getRecordTypeBySobjectType('Campanha__c');

			agrupamentoPai = new AgrupamentoCampanhas__c();
			agrupamentoPai.Name = 'Agrupamento Pai';
			insert agrupamentoPai;

			agrupamentoFilho = new AgrupamentoCampanhas__c();
			agrupamentoFilho.Name = 'Agrupamento Filho';
			agrupamentoFilho.NomeAgrupamentoPai__c = agrupamentoPai.Id;
			insert agrupamentoFilho;

			PecaPublicitaria__c pecaPublicitaria = new PecaPublicitaria__c();
			pecaPublicitaria = InstanciaSObjectsForClassCoverage.getPecaPublicitaria();
			pecaPublicitaria.Segmento__c = 'Azul';
			insert pecaPublicitaria;

			campanhaConceito = new Campanha__c();
			campanhaConceito.RecordTypeId = mapRecordTypeCampanha.get('Conceito').Id;
			campanhaConceito.AgrupamentoCampanha__c = agrupamentoFilho.Id;
			campanhaConceito.PecaPublicitaria__c = pecaPublicitaria.Id;
			campanhaConceito.Segmento__c = 'Azul';
			campanhaConceito.DisponibilizarPortal__c = false;
			insert campanhaConceito;

			campanhaPadrao = new Campanha__c();
			campanhaPadrao.RecordTypeId = mapRecordTypeCampanha.get('Padrao').Id;
			campanhaPadrao.CampanhaConceito__c = campanhaConceito.Id;
			campanhaPadrao.PecaPublicitaria__c = pecaPublicitaria.Id;
			campanhaPadrao.Segmento__c = 'Azul';
			campanhaConceito.DisponibilizarPortal__c = false;
			insert campanhaPadrao;

			disparoEfetuado = new DisparoEfetuado__c();
			disparoEfetuado.Campanha__c = campanhaPadrao.Id;
		

			insert disparoEfetuado;

			lstMembrosDisparo = new List<MembroDisparo__c>();
			for(Integer i=0; i<5; i++) {
				MembroDisparo__c membroDisparo = new MembroDisparo__c();
				membroDisparo.Campanha__c = campanhaPadrao.Id;
				membroDisparo.DisparoEfetuado__c = disparoEfetuado.Id;
				membroDisparo.DataAbertura__c = System.today();
				membroDisparo.DataEnvio__c = System.today();
				membroDisparo.QuantidadeCliques__c = 1;

				lstMembrosDisparo.add(membroDisparo);
			}

			insert lstMembrosDisparo;
            
            MembroDisparo__c updateMembroDisparo;
            updateMembroDisparo = [SELECT QuantidadeCliques__c FROM MembroDisparo__c WHERE DataEnvio__c = :System.today()];
            updateMembroDisparo.QuantidadeCliques__c = 2;
            update updateMembroDisparo;
            
            


		} catch(Exception e) 
		{
		  System.debug(e.getMessage());
		}

	}
}

can someone help me please?
Best Answer chosen by Lucas Andrade
Adrian  GawryszewskiAdrian Gawryszewski
First of all remove that try catch construct. Instead of that start your test with Test.startTest() and finish with Test.stopTest() otherwise you don't init testing on that piece of code. It also checks all the limits etc. A bit more info below:

https://developer.salesforce.com/page/How_To_Test_Your_Apex_Triggers
Regards
Adrian

All Answers

Adrian  GawryszewskiAdrian Gawryszewski
First of all remove that try catch construct. Instead of that start your test with Test.startTest() and finish with Test.stopTest() otherwise you don't init testing on that piece of code. It also checks all the limits etc. A bit more info below:

https://developer.salesforce.com/page/How_To_Test_Your_Apex_Triggers
Regards
Adrian
This was selected as the best answer
Amit Chaudhary 8Amit Chaudhary 8
While deploying your change set please check below things
1) Trigger should be active
2) Test class should be included in Change set.