Skip to content

Commit c751907

Browse files
author
Matt Calhoun
authored
allow skipping test runs (#40)
1 parent 73e253b commit c751907

File tree

6 files changed

+169
-7
lines changed

6 files changed

+169
-7
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,9 @@ func TestMain(m *testing.M) {
165165
defer suite.TearDown(t)
166166
suite.Setup(t)
167167

168-
m.Run()
168+
if !suite.SkipTests {
169+
m.Run()
170+
}
169171
}
170172

171173
func TestBastion(t *testing.T) {

README.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,9 @@ introduction: |-
154154
defer suite.TearDown(t)
155155
suite.Setup(t)
156156
157-
m.Run()
157+
if !suite.SkipTests {
158+
m.Run()
159+
}
158160
}
159161
160162
func TestBastion(t *testing.T) {

pkg/atmos/aws-component-helper/cli.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ func parseCLIArgs(ts *TestSuite) *TestSuite {
1414
skipTeardownTestSuite := flag.Bool("skip-teardown", ts.SkipTeardownTestSuite, "skip test suite teardown")
1515
skipVendorDependencies := flag.Bool("skip-vendor", ts.SkipVendorDependencies, "skip vendor dependencies")
1616
skipVerifyEnabledFlag := flag.Bool("skip-verify-enabled-flag", ts.SkipVerifyEnabledFlag, "skip verify enabled flag")
17+
skipTests := flag.Bool("skip-tests", ts.SkipTests, "skip tests")
1718

1819
flag.Parse()
1920

@@ -28,6 +29,7 @@ func parseCLIArgs(ts *TestSuite) *TestSuite {
2829
ts.SkipTeardownTestSuite = *skipTeardownTestSuite
2930
ts.SkipVendorDependencies = *skipVendorDependencies
3031
ts.SkipVerifyEnabledFlag = *skipVerifyEnabledFlag
32+
ts.SkipTests = *skipTests
3133
return ts
3234
}
3335

pkg/atmos/aws-component-helper/cli_test.go

Lines changed: 157 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,11 @@ func TestParseCLIArgs(t *testing.T) {
3030
SkipDeployComponentUnderTest: false,
3131
SkipDestroyComponentUnderTest: false,
3232
SkipTeardownTestSuite: false,
33+
SkipVendorDependencies: false,
3334
SkipVerifyEnabledFlag: false,
35+
SkipTests: false,
36+
ForceNewSuite: false,
37+
Index: -1,
3438
},
3539
expected: &TestSuite{
3640
SkipNukeTestAccount: false,
@@ -40,11 +44,15 @@ func TestParseCLIArgs(t *testing.T) {
4044
SkipDeployComponentUnderTest: false,
4145
SkipDestroyComponentUnderTest: false,
4246
SkipTeardownTestSuite: false,
47+
SkipVendorDependencies: false,
4348
SkipVerifyEnabledFlag: false,
49+
SkipTests: false,
50+
ForceNewSuite: false,
51+
Index: -1,
4452
},
4553
},
4654
{
47-
name: "all flags set to true",
55+
name: "all skip flags set to true",
4856
args: []string{"prog",
4957
"-skip-aws-nuke",
5058
"-skip-deploy-deps",
@@ -53,7 +61,9 @@ func TestParseCLIArgs(t *testing.T) {
5361
"-skip-deploy-cut",
5462
"-skip-destroy-cut",
5563
"-skip-teardown",
64+
"-skip-vendor",
5665
"-skip-verify-enabled-flag",
66+
"-skip-tests",
5767
},
5868
initial: &TestSuite{},
5969
expected: &TestSuite{
@@ -64,7 +74,54 @@ func TestParseCLIArgs(t *testing.T) {
6474
SkipDeployComponentUnderTest: true,
6575
SkipDestroyComponentUnderTest: true,
6676
SkipTeardownTestSuite: true,
77+
SkipVendorDependencies: true,
6778
SkipVerifyEnabledFlag: true,
79+
SkipTests: true,
80+
ForceNewSuite: false,
81+
Index: -1,
82+
},
83+
},
84+
{
85+
name: "force new suite and suite index",
86+
args: []string{"prog",
87+
"-force-new-suite",
88+
"-suite-index=5",
89+
},
90+
initial: &TestSuite{},
91+
expected: &TestSuite{
92+
ForceNewSuite: true,
93+
Index: 5,
94+
},
95+
},
96+
{
97+
name: "initial values respected when not overridden",
98+
args: []string{"prog",
99+
"-skip-aws-nuke",
100+
"-skip-deploy-deps",
101+
},
102+
initial: &TestSuite{
103+
SkipDestroyDependencies: true,
104+
SkipSetupComponentUnderTest: true,
105+
SkipDeployComponentUnderTest: true,
106+
SkipDestroyComponentUnderTest: true,
107+
SkipTeardownTestSuite: true,
108+
SkipVendorDependencies: true,
109+
SkipVerifyEnabledFlag: true,
110+
SkipTests: true,
111+
},
112+
expected: &TestSuite{
113+
SkipNukeTestAccount: true,
114+
SkipDeployDependencies: true,
115+
SkipDestroyDependencies: true,
116+
SkipSetupComponentUnderTest: true,
117+
SkipDeployComponentUnderTest: true,
118+
SkipDestroyComponentUnderTest: true,
119+
SkipTeardownTestSuite: true,
120+
SkipVendorDependencies: true,
121+
SkipVerifyEnabledFlag: true,
122+
SkipTests: true,
123+
ForceNewSuite: false,
124+
Index: -1,
68125
},
69126
},
70127
}
@@ -111,6 +168,14 @@ func TestSkipDestroyDependencies(t *testing.T) {
111168
},
112169
expected: true,
113170
},
171+
{
172+
name: "both flags true",
173+
ts: &TestSuite{
174+
SkipDestroyDependencies: true,
175+
SkipDestroyComponentUnderTest: true,
176+
},
177+
expected: true,
178+
},
114179
}
115180

116181
for _, tt := range tests {
@@ -128,16 +193,38 @@ func TestSkipTeardownTestSuite(t *testing.T) {
128193
expected bool
129194
}{
130195
{
131-
name: "both flags false",
196+
name: "all flags false",
132197
ts: &TestSuite{
133-
SkipTeardownTestSuite: false,
198+
SkipTeardownTestSuite: false,
199+
SkipDestroyDependencies: false,
200+
SkipDestroyComponentUnderTest: false,
134201
},
135202
expected: false,
136203
},
137204
{
138205
name: "SkipTeardownTestSuite true",
139206
ts: &TestSuite{
140-
SkipTeardownTestSuite: true,
207+
SkipTeardownTestSuite: true,
208+
SkipDestroyDependencies: false,
209+
SkipDestroyComponentUnderTest: false,
210+
},
211+
expected: true,
212+
},
213+
{
214+
name: "SkipDestroyDependencies true",
215+
ts: &TestSuite{
216+
SkipTeardownTestSuite: false,
217+
SkipDestroyDependencies: true,
218+
SkipDestroyComponentUnderTest: false,
219+
},
220+
expected: true,
221+
},
222+
{
223+
name: "SkipDestroyComponentUnderTest true",
224+
ts: &TestSuite{
225+
SkipTeardownTestSuite: false,
226+
SkipDestroyDependencies: false,
227+
SkipDestroyComponentUnderTest: true,
141228
},
142229
expected: true,
143230
},
@@ -150,3 +237,69 @@ func TestSkipTeardownTestSuite(t *testing.T) {
150237
})
151238
}
152239
}
240+
241+
func TestSkipNukeTestAccount(t *testing.T) {
242+
tests := []struct {
243+
name string
244+
ts *TestSuite
245+
expected bool
246+
}{
247+
{
248+
name: "all flags false",
249+
ts: &TestSuite{
250+
SkipNukeTestAccount: false,
251+
SkipTeardownTestSuite: false,
252+
SkipDestroyDependencies: false,
253+
SkipDestroyComponentUnderTest: false,
254+
},
255+
expected: false,
256+
},
257+
{
258+
name: "SkipNukeTestAccount true",
259+
ts: &TestSuite{
260+
SkipNukeTestAccount: true,
261+
SkipTeardownTestSuite: false,
262+
SkipDestroyDependencies: false,
263+
SkipDestroyComponentUnderTest: false,
264+
},
265+
expected: true,
266+
},
267+
{
268+
name: "SkipTeardownTestSuite true",
269+
ts: &TestSuite{
270+
SkipNukeTestAccount: false,
271+
SkipTeardownTestSuite: true,
272+
SkipDestroyDependencies: false,
273+
SkipDestroyComponentUnderTest: false,
274+
},
275+
expected: true,
276+
},
277+
{
278+
name: "SkipDestroyDependencies true",
279+
ts: &TestSuite{
280+
SkipNukeTestAccount: false,
281+
SkipTeardownTestSuite: false,
282+
SkipDestroyDependencies: true,
283+
SkipDestroyComponentUnderTest: false,
284+
},
285+
expected: true,
286+
},
287+
{
288+
name: "SkipDestroyComponentUnderTest true",
289+
ts: &TestSuite{
290+
SkipNukeTestAccount: false,
291+
SkipTeardownTestSuite: false,
292+
SkipDestroyDependencies: false,
293+
SkipDestroyComponentUnderTest: true,
294+
},
295+
expected: true,
296+
},
297+
}
298+
299+
for _, tt := range tests {
300+
t.Run(tt.name, func(t *testing.T) {
301+
result := skipNukeTestAccount(tt.ts)
302+
assert.Equal(t, tt.expected, result)
303+
})
304+
}
305+
}

pkg/atmos/aws-component-helper/test_suite.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ type TestSuite struct {
2424
SkipDestroyComponentUnderTest bool
2525
SkipDestroyDependencies bool
2626
SkipTeardownTestSuite bool
27+
SkipTests bool
2728
SkipVendorDependencies bool
2829
SkipVerifyEnabledFlag bool
2930
SkipNukeTestAccount bool

test/aws-component-helper/test/basic_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ func TestMain(m *testing.M) {
4040
panic(err)
4141
}
4242

43-
m.Run()
43+
if !suite.SkipTests {
44+
m.Run()
45+
}
4446
}
4547

4648
func TestBasic(t *testing.T) {

0 commit comments

Comments
 (0)