Reputation: 9
deploy run test pass, but still display Test coverage of selected Apex Trigger is 0%, at least 1%
Apex Trigger:
failed to deploy: message: "Test coverage of selected Apex Trigger is 0%, at least 1% test coverage is required"
Trigger AutoActivityCreation on Account(after update)
{
List<Task> task = new List<Task>();
for (Integer i = 0; i < Trigger.new.size(); i++) {
List<String> techs = Trigger.new[i].Toolsberry_new_tech_installs__c.split(';');
Integer added_tech = techs.size();
if(Trigger.new[i].Toolsberry_new_tech_installs__c=='null'){
added_tech=0;
}
List<String> re_techs = Trigger.new[i].Toolsberry_removed_tech_installs__c.split(';');
Integer removed_tech = re_techs.size();
if(Trigger.new[i].Toolsberry_removed_tech_installs__c=='null'){
removed_tech=0;
}
task.add(new Task(
whatid=Trigger.new[i].Id,
OwnerId=Trigger.new[i].OwnerId,
Subject='Technologies Added '+added_tech+' , Removed '+removed_tech,
Status = 'Completed',
ActivityDate = system.today()
) ) ;
}
insert task;
}
Apex class - test and pass
@isTest
private class AutoActivityCreationTest
{
static testMethod void myUnitTest()
{
List<Task> task = new List<Task>();
Account testAccount = new Account(name='Test Company Name',Toolsberry_new_tech_installs__c='',Toolsberry_removed_tech_installs__c='');
insert testAccount;
List<String> techs = testAccount.Toolsberry_new_tech_installs__c.split(';');
Integer added_tech = techs.size();
if(testAccount.Toolsberry_new_tech_installs__c=='null'){
added_tech=0;
}
List<String> re_techs = testAccount.Toolsberry_removed_tech_installs__c.split(';');
Integer removed_tech = re_techs.size();
if(testAccount.Toolsberry_removed_tech_installs__c=='null'){
removed_tech=0;
}
Task testTask = new Task(WhatID = testAccount.Id,Subject= 'Technologies Added '+added_tech+' , Removed '+removed_tech, Status = 'Completed',
ActivityDate = system.today());
test.startTest();
insert testTask;
System.assertEquals('Technologies Added '+added_tech+' , Removed '+removed_tech,testtask.Subject);
test.stopTest();
}
}
Upvotes: 0
Views: 1110
Reputation: 414
Your trigger is for "after update" but all I see in your test code is "insert testTask".
You'll either need to modify your trigger to include "after insert" or adjust your test so that it also does an update to object "testTask". Once you do either of these options, the trigger code will then be called from the test code.
Upvotes: 2