The AT003 analyzer reports where an underscore is not present in the function name, which could make per-resource testing harder to execute in larger providers or those with overlapping resource names.
This example is presuming there are two separate resources:
example_thing
example_thing_association
func TestAccExampleThing(t *testing.T) { /* ... */ }
func TestAccExampleThingSomeAttribute(t *testing.T) { /* ... */ }
func TestAccExampleThingAssociation(t *testing.T) { /* ... */ }
func TestAccExampleThingAssociationSomeAttribute(t *testing.T) { /* ... */ }
func TestAccExampleThing_basic(t *testing.T) { /* ... */ }
func TestAccExampleThing_SomeAttribute(t *testing.T) { /* ... */ }
func TestAccExampleThingAssociation_basic(t *testing.T) { /* ... */ }
func TestAccExampleThingAssociation_SomeAttribute(t *testing.T) { /* ... */ }
Singular reports can be ignored by adding the a //lintignore:AT003
Go code comment at the end of the offending line or on the line immediately proceding, e.g.
//lintignore:AT003
func TestAccExampleThing(t *testing.T) { /* ... */ }