ace-test 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/.ace-defaults/nav/protocols/agent-sources/ace-test.yml +19 -0
  3. data/.ace-defaults/nav/protocols/guide-sources/ace-test.yml +19 -0
  4. data/.ace-defaults/nav/protocols/tmpl-sources/ace-test.yml +11 -0
  5. data/.ace-defaults/nav/protocols/wfi-sources/ace-test.yml +19 -0
  6. data/CHANGELOG.md +169 -0
  7. data/LICENSE +21 -0
  8. data/README.md +40 -0
  9. data/Rakefile +12 -0
  10. data/handbook/agents/mock.ag.md +164 -0
  11. data/handbook/agents/profile-tests.ag.md +132 -0
  12. data/handbook/agents/test.ag.md +99 -0
  13. data/handbook/guides/SUMMARY.md +95 -0
  14. data/handbook/guides/embedded-testing-guide.g.md +261 -0
  15. data/handbook/guides/mocking-patterns.g.md +464 -0
  16. data/handbook/guides/quick-reference.g.md +46 -0
  17. data/handbook/guides/test-driven-development-cycle/meta-documentation.md +26 -0
  18. data/handbook/guides/test-driven-development-cycle/ruby-application.md +18 -0
  19. data/handbook/guides/test-driven-development-cycle/ruby-gem.md +19 -0
  20. data/handbook/guides/test-driven-development-cycle/rust-cli.md +18 -0
  21. data/handbook/guides/test-driven-development-cycle/rust-wasm-zed.md +19 -0
  22. data/handbook/guides/test-driven-development-cycle/typescript-nuxt.md +18 -0
  23. data/handbook/guides/test-driven-development-cycle/typescript-vue.md +19 -0
  24. data/handbook/guides/test-layer-decision.g.md +261 -0
  25. data/handbook/guides/test-mocking-patterns.g.md +414 -0
  26. data/handbook/guides/test-organization.g.md +140 -0
  27. data/handbook/guides/test-performance.g.md +353 -0
  28. data/handbook/guides/test-responsibility-map.g.md +220 -0
  29. data/handbook/guides/test-review-checklist.g.md +231 -0
  30. data/handbook/guides/test-suite-health.g.md +337 -0
  31. data/handbook/guides/testable-code-patterns.g.md +315 -0
  32. data/handbook/guides/testing/ruby-rspec-config-examples.md +120 -0
  33. data/handbook/guides/testing/ruby-rspec.md +87 -0
  34. data/handbook/guides/testing/rust.md +52 -0
  35. data/handbook/guides/testing/test-maintenance.md +364 -0
  36. data/handbook/guides/testing/typescript-bun.md +47 -0
  37. data/handbook/guides/testing/vue-firebase-auth.md +546 -0
  38. data/handbook/guides/testing/vue-vitest.md +236 -0
  39. data/handbook/guides/testing-philosophy.g.md +82 -0
  40. data/handbook/guides/testing-strategy.g.md +151 -0
  41. data/handbook/guides/testing-tdd-cycle.g.md +146 -0
  42. data/handbook/guides/testing.g.md +170 -0
  43. data/handbook/skills/as-test-create-cases/SKILL.md +24 -0
  44. data/handbook/skills/as-test-fix/SKILL.md +26 -0
  45. data/handbook/skills/as-test-improve-coverage/SKILL.md +22 -0
  46. data/handbook/skills/as-test-optimize/SKILL.md +34 -0
  47. data/handbook/skills/as-test-performance-audit/SKILL.md +34 -0
  48. data/handbook/skills/as-test-plan/SKILL.md +34 -0
  49. data/handbook/skills/as-test-review/SKILL.md +34 -0
  50. data/handbook/skills/as-test-verify-suite/SKILL.md +45 -0
  51. data/handbook/templates/e2e-sandbox-checklist.template.md +289 -0
  52. data/handbook/templates/test-case.template.md +56 -0
  53. data/handbook/templates/test-performance-audit.template.md +132 -0
  54. data/handbook/templates/test-responsibility-map.template.md +92 -0
  55. data/handbook/templates/test-review-checklist.template.md +163 -0
  56. data/handbook/workflow-instructions/test/analyze-failures.wf.md +120 -0
  57. data/handbook/workflow-instructions/test/create-cases.wf.md +675 -0
  58. data/handbook/workflow-instructions/test/fix.wf.md +120 -0
  59. data/handbook/workflow-instructions/test/improve-coverage.wf.md +370 -0
  60. data/handbook/workflow-instructions/test/optimize.wf.md +368 -0
  61. data/handbook/workflow-instructions/test/performance-audit.wf.md +17 -0
  62. data/handbook/workflow-instructions/test/plan.wf.md +323 -0
  63. data/handbook/workflow-instructions/test/review.wf.md +16 -0
  64. data/handbook/workflow-instructions/test/verify-suite.wf.md +343 -0
  65. data/lib/ace/test/version.rb +7 -0
  66. data/lib/ace/test.rb +10 -0
  67. metadata +152 -0
@@ -0,0 +1,343 @@
1
+ ---
2
+ doc-type: workflow
3
+ title: Verify Test Suite Workflow
4
+ purpose: Maintain healthy test suites through systematic verification
5
+ ace-docs:
6
+ last-updated: 2026-02-22
7
+ last-checked: 2026-03-21
8
+ ---
9
+
10
+ # Verify Test Suite Workflow
11
+
12
+ ## Purpose
13
+
14
+ Systematically audit test suite health to identify:
15
+ - Slow tests that should be optimized or moved to E2E
16
+ - Zombie mocks that don't test real behavior
17
+ - Tests at wrong layer
18
+ - Coverage gaps
19
+ - Flaky tests
20
+
21
+ ## When to Use
22
+
23
+ - Monthly full audit (scheduled)
24
+ - Before major releases
25
+ - After significant refactoring
26
+ - When test suite feels "slow"
27
+ - When bugs escape to production
28
+
29
+ ## Scope Levels
30
+
31
+ | Scope | Duration | What It Checks |
32
+ |-------|----------|----------------|
33
+ | quick | ~2 min | Performance profile only |
34
+ | standard | ~10 min | Performance + zombie detection + layer check |
35
+ | deep | ~30 min | All checks + coverage + flakiness |
36
+
37
+ ## Workflow Steps
38
+
39
+ ### Step 1: Performance Profile
40
+
41
+ Run tests with profiling:
42
+
43
+ ```bash
44
+ # Single package
45
+ ace-test <package> --profile 20
46
+
47
+ # Full monorepo
48
+ ace-test-suite --profile
49
+ ```
50
+
51
+ **Collect**:
52
+ - Total suite time
53
+ - Slowest 20 tests
54
+ - Tests exceeding thresholds
55
+
56
+ **Thresholds**:
57
+ | Test Type | Warning | Critical |
58
+ |-----------|---------|----------|
59
+ | Unit (atoms) | >50ms | >100ms |
60
+ | Unit (molecules) | >100ms | >200ms |
61
+ | Integration | >1s | >2s |
62
+
63
+ ### Step 2: Identify Threshold Violations
64
+
65
+ Parse profile output:
66
+
67
+ ```bash
68
+ # Extract tests exceeding 100ms
69
+ ace-test --profile 20 | grep -E "[0-9]+\.[1-9][0-9][0-9]s|[1-9]\.[0-9]+s"
70
+ ```
71
+
72
+ For each violation, classify:
73
+
74
+ | Test | Time | Category | Action |
75
+ |------|------|----------|--------|
76
+ | test_complex_validation | 156ms | Unit | Investigate stub |
77
+ | test_cli_output_format | 890ms | Integration | Consider E2E |
78
+ | test_full_workflow | 2.3s | E2E | OK if intentional |
79
+
80
+ ### Step 3: Zombie Mock Detection (standard+)
81
+
82
+ For each slow unit test, verify stubs are actually used:
83
+
84
+ ```ruby
85
+ # Test methodology:
86
+ # 1. Change stub return value to something obviously wrong
87
+ # 2. Run test
88
+ # 3. If test still passes, stub is zombie
89
+
90
+ # Example check:
91
+ Runner.stub(:run, "ZOMBIE_CHECK_VALUE_12345") do
92
+ result = subject.lint(file)
93
+ # If result doesn't contain ZOMBIE_CHECK_VALUE, stub is zombie
94
+ end
95
+ ```
96
+
97
+ **Indicators of zombie mocks**:
98
+ - Slow test with stubs that should make it fast
99
+ - Stub method name doesn't exist in current code
100
+ - Test passes regardless of stub return value
101
+
102
+ ### Step 3b: Implementation Subprocess Detection
103
+
104
+ For each slow molecule test (>100ms):
105
+
106
+ 1. **Identify the class under test** from the test filename:
107
+ ```bash
108
+ # test/molecules/feedback_extractor_test.rb tests:
109
+ # lib/<package>/molecules/feedback_extractor.rb
110
+ ```
111
+
112
+ 2. **Search implementation for subprocess patterns**:
113
+ ```bash
114
+ # Search for backticks, system(), Open3, IO.popen in the source file
115
+ grep -E '`[^`]+`|system\(|Open3\.|IO\.popen' lib/*/molecules/feedback_extractor.rb
116
+ ```
117
+
118
+ 3. **For each subprocess found**, verify it's stubbed in the test:
119
+ - Check if test uses `stub_prompt_path`, `stub(:available?)`, or similar
120
+ - If not stubbed → **Layer Violation: unstubbed subprocess**
121
+
122
+ **Common subprocess patterns to search for**:
123
+ | Pattern | Typical Cost | Standard Stub |
124
+ |---------|-------------|---------------|
125
+ | `` `ace-nav ...` `` | ~200ms | `stub_prompt_path(object)` |
126
+ | `` `git ...` `` | ~100ms | MockGitRepo or stub |
127
+ | `Open3.capture3` | ~150ms | Stub `:capture3` |
128
+ | `system("...")` | ~100ms | Stub `:system` |
129
+
130
+ ### Step 4: Layer Classification Audit (standard+)
131
+
132
+ For each test file, verify it's at the correct layer:
133
+
134
+ **Check atoms/ tests**:
135
+ - [ ] No subprocess calls (Open3, system)
136
+ - [ ] No filesystem operations (except temp files)
137
+ - [ ] No network calls
138
+ - [ ] No git operations
139
+ - [ ] Test time <50ms each
140
+
141
+ **Check molecules/ tests**:
142
+ - [ ] Subprocess calls are stubbed:
143
+ - [ ] Search SOURCE file for: backticks, system(), Open3, IO.popen
144
+ - [ ] Each subprocess has corresponding stub in test
145
+ - [ ] Network calls use WebMock
146
+ - [ ] Git uses MockGitRepo or stubs
147
+ - [ ] Test time <200ms each
148
+
149
+ **Check organisms/ tests**:
150
+ - [ ] At most ONE real CLI test per file
151
+ - [ ] Integration points mocked appropriately
152
+ - [ ] Test time <1s each
153
+
154
+ **Check e2e/ tests**:
155
+ - [ ] Actually tests user workflow
156
+ - [ ] Uses real dependencies
157
+ - [ ] Has PASS/FAIL assertions
158
+
159
+ ### Step 5: Coverage Analysis (deep)
160
+
161
+ Generate coverage report:
162
+
163
+ ```bash
164
+ COVERAGE=true ace-test-suite
165
+ ```
166
+
167
+ **Analyze**:
168
+ - Overall coverage percentage
169
+ - Coverage by package
170
+ - Uncovered critical paths
171
+ - Trend vs previous audit
172
+
173
+ **Focus areas**:
174
+ - Business logic (organisms)
175
+ - Error handling paths
176
+ - Edge cases in data processing
177
+
178
+ ### Step 6: Flakiness Detection (deep)
179
+
180
+ Run tests multiple times:
181
+
182
+ ```bash
183
+ for i in {1..5}; do
184
+ ace-test-suite --quiet 2>&1 | grep -E "FAIL|ERROR" >> flaky-check.txt
185
+ done
186
+ ```
187
+
188
+ **Identify**:
189
+ - Tests that fail inconsistently
190
+ - Tests with timing dependencies
191
+ - Tests with order dependencies
192
+
193
+ ### Step 7: Generate Report
194
+
195
+ Compile findings into health report:
196
+
197
+ ```markdown
198
+ # Test Suite Health Report
199
+
200
+ **Date**: YYYY-MM-DD
201
+ **Scope**: standard
202
+ **Packages Audited**: N
203
+
204
+ ## Executive Summary
205
+
206
+ - Overall Health: [Good | Warning | Critical]
207
+ - Tests: N total, N passing
208
+ - Performance: [OK | N violations]
209
+ - Zombie Mocks: [None | N detected]
210
+
211
+ ## Performance
212
+
213
+ ### Threshold Violations
214
+
215
+ | Package | Test | Time | Action |
216
+ |---------|------|------|--------|
217
+ | ace-lint | test_complex_validation | 156ms | Stub subprocess |
218
+ | ace-git | test_diff_with_large_file | 1.2s | Move to E2E |
219
+
220
+ ### Package Summary
221
+
222
+ | Package | Tests | Time | Status |
223
+ |---------|-------|------|--------|
224
+ | ace-lint | 45 | 1.2s | OK |
225
+ | ace-git | 78 | 8.5s | Warning |
226
+
227
+ ## Zombie Mocks Detected
228
+
229
+ | Package | Test | Stub | Issue |
230
+ |---------|------|------|-------|
231
+ | ace-docs | test_change_detection | execute_git_command | Method renamed to generate |
232
+
233
+ ## Layer Issues
234
+
235
+ | Package | Test | Current | Should Be |
236
+ |---------|------|---------|-----------|
237
+ | ace-lint | test_cli_verbose_flag | atoms | integration |
238
+
239
+ ## Coverage (if deep)
240
+
241
+ | Package | Coverage | Trend |
242
+ |---------|----------|-------|
243
+ | ace-lint | 87% | +2% |
244
+ | ace-git | 72% | -1% |
245
+
246
+ ### Uncovered Critical Paths
247
+ - ace-git: error handling in rebase
248
+ - ace-lint: doctor --fix path
249
+
250
+ ## Flaky Tests (if deep)
251
+
252
+ | Package | Test | Failure Rate |
253
+ |---------|------|--------------|
254
+ | ace-git | test_concurrent_access | 20% (1/5) |
255
+
256
+ ## Action Items
257
+
258
+ ### Immediate (this week)
259
+ 1. [ ] Fix zombie mock in ace-docs
260
+ 2. [ ] Move ace-git slow test to E2E
261
+
262
+ ### Short-term (this month)
263
+ 3. [ ] Add stubs to ace-lint violations
264
+ 4. [ ] Investigate ace-git flaky test
265
+
266
+ ### Long-term (this quarter)
267
+ 5. [ ] Improve coverage in ace-git error handling
268
+ ```
269
+
270
+ ### Step 8: Create Tasks
271
+
272
+ For critical issues, create follow-up tasks:
273
+
274
+ ```bash
275
+ # Example task creation
276
+ ace-idea "Fix zombie mock in ace-docs test_change_detection"
277
+ ace-idea "Move ace-git test_diff_with_large_file to E2E"
278
+ ```
279
+
280
+ ## Automation
281
+
282
+ ### Scheduled Audit
283
+
284
+ Add to cron or CI schedule:
285
+
286
+ ```yaml
287
+ # .github/workflows/test-audit.yml
288
+ name: Monthly Test Audit
289
+ on:
290
+ schedule:
291
+ - cron: '0 9 1 * *' # First of month, 9am
292
+ workflow_dispatch:
293
+
294
+ jobs:
295
+ audit:
296
+ runs-on: ubuntu-latest
297
+ steps:
298
+ - uses: actions/checkout@v4
299
+ - name: Run audit
300
+ run: |
301
+ # Quick audit in CI
302
+ ace-test-suite --profile > audit.txt
303
+ # Post to issue or Slack
304
+ ```
305
+
306
+ ### Pre-merge Check
307
+
308
+ ```yaml
309
+ # In PR workflow
310
+ - name: Performance regression check
311
+ run: |
312
+ ace-test --profile 20 > profile.txt
313
+ if grep -E "[0-9]+\.[2-9][0-9][0-9]s|[1-9]\.[0-9]+s" profile.txt; then
314
+ echo "::error::Performance regression detected"
315
+ exit 1
316
+ fi
317
+ ```
318
+
319
+ ## Checklist
320
+
321
+ ### Quick Audit
322
+ - [ ] Run `ace-test-suite --profile`
323
+ - [ ] Identify tests >100ms
324
+ - [ ] Note critical violations
325
+
326
+ ### Standard Audit
327
+ - [ ] Quick audit steps
328
+ - [ ] Check slow tests for zombie mocks
329
+ - [ ] Verify test layer classification
330
+ - [ ] Generate health report
331
+
332
+ ### Deep Audit
333
+ - [ ] Standard audit steps
334
+ - [ ] Generate coverage report
335
+ - [ ] Run flakiness detection (5x)
336
+ - [ ] Compare to previous audit
337
+ - [ ] Create action item tasks
338
+
339
+ ## See Also
340
+
341
+ - [Test Suite Health Guide](guide://test-suite-health)
342
+ - [Test Performance Guide](guide://test-performance)
343
+ - [Optimize Tests Workflow](wfi://test/optimize)
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Ace
4
+ module Test
5
+ VERSION = "0.6.0"
6
+ end
7
+ end
data/lib/ace/test.rb ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "test/version"
4
+
5
+ module Ace
6
+ module Test
7
+ # Ace test gem containing testing workflows, guides, and patterns
8
+ # This is a pure workflow package with no executable code
9
+ end
10
+ end
metadata ADDED
@@ -0,0 +1,152 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ace-test
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.0
5
+ platform: ruby
6
+ authors:
7
+ - Michal Czyz
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: bundler
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '2.0'
19
+ type: :development
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '2.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: rake
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '13.0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '13.0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: minitest
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '5.0'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '5.0'
54
+ description: ACE testing knowledge base with guides, testing patterns, and workflow
55
+ instructions for fast and reliable code validation.
56
+ email:
57
+ - mc@cs3b.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - ".ace-defaults/nav/protocols/agent-sources/ace-test.yml"
63
+ - ".ace-defaults/nav/protocols/guide-sources/ace-test.yml"
64
+ - ".ace-defaults/nav/protocols/tmpl-sources/ace-test.yml"
65
+ - ".ace-defaults/nav/protocols/wfi-sources/ace-test.yml"
66
+ - CHANGELOG.md
67
+ - LICENSE
68
+ - README.md
69
+ - Rakefile
70
+ - handbook/agents/mock.ag.md
71
+ - handbook/agents/profile-tests.ag.md
72
+ - handbook/agents/test.ag.md
73
+ - handbook/guides/SUMMARY.md
74
+ - handbook/guides/embedded-testing-guide.g.md
75
+ - handbook/guides/mocking-patterns.g.md
76
+ - handbook/guides/quick-reference.g.md
77
+ - handbook/guides/test-driven-development-cycle/meta-documentation.md
78
+ - handbook/guides/test-driven-development-cycle/ruby-application.md
79
+ - handbook/guides/test-driven-development-cycle/ruby-gem.md
80
+ - handbook/guides/test-driven-development-cycle/rust-cli.md
81
+ - handbook/guides/test-driven-development-cycle/rust-wasm-zed.md
82
+ - handbook/guides/test-driven-development-cycle/typescript-nuxt.md
83
+ - handbook/guides/test-driven-development-cycle/typescript-vue.md
84
+ - handbook/guides/test-layer-decision.g.md
85
+ - handbook/guides/test-mocking-patterns.g.md
86
+ - handbook/guides/test-organization.g.md
87
+ - handbook/guides/test-performance.g.md
88
+ - handbook/guides/test-responsibility-map.g.md
89
+ - handbook/guides/test-review-checklist.g.md
90
+ - handbook/guides/test-suite-health.g.md
91
+ - handbook/guides/testable-code-patterns.g.md
92
+ - handbook/guides/testing-philosophy.g.md
93
+ - handbook/guides/testing-strategy.g.md
94
+ - handbook/guides/testing-tdd-cycle.g.md
95
+ - handbook/guides/testing.g.md
96
+ - handbook/guides/testing/ruby-rspec-config-examples.md
97
+ - handbook/guides/testing/ruby-rspec.md
98
+ - handbook/guides/testing/rust.md
99
+ - handbook/guides/testing/test-maintenance.md
100
+ - handbook/guides/testing/typescript-bun.md
101
+ - handbook/guides/testing/vue-firebase-auth.md
102
+ - handbook/guides/testing/vue-vitest.md
103
+ - handbook/skills/as-test-create-cases/SKILL.md
104
+ - handbook/skills/as-test-fix/SKILL.md
105
+ - handbook/skills/as-test-improve-coverage/SKILL.md
106
+ - handbook/skills/as-test-optimize/SKILL.md
107
+ - handbook/skills/as-test-performance-audit/SKILL.md
108
+ - handbook/skills/as-test-plan/SKILL.md
109
+ - handbook/skills/as-test-review/SKILL.md
110
+ - handbook/skills/as-test-verify-suite/SKILL.md
111
+ - handbook/templates/e2e-sandbox-checklist.template.md
112
+ - handbook/templates/test-case.template.md
113
+ - handbook/templates/test-performance-audit.template.md
114
+ - handbook/templates/test-responsibility-map.template.md
115
+ - handbook/templates/test-review-checklist.template.md
116
+ - handbook/workflow-instructions/test/analyze-failures.wf.md
117
+ - handbook/workflow-instructions/test/create-cases.wf.md
118
+ - handbook/workflow-instructions/test/fix.wf.md
119
+ - handbook/workflow-instructions/test/improve-coverage.wf.md
120
+ - handbook/workflow-instructions/test/optimize.wf.md
121
+ - handbook/workflow-instructions/test/performance-audit.wf.md
122
+ - handbook/workflow-instructions/test/plan.wf.md
123
+ - handbook/workflow-instructions/test/review.wf.md
124
+ - handbook/workflow-instructions/test/verify-suite.wf.md
125
+ - lib/ace/test.rb
126
+ - lib/ace/test/version.rb
127
+ homepage: https://github.com/cs3b/ace
128
+ licenses:
129
+ - MIT
130
+ metadata:
131
+ homepage_uri: https://github.com/cs3b/ace
132
+ source_code_uri: https://github.com/cs3b/ace/tree/main/ace-test/
133
+ changelog_uri: https://github.com/cs3b/ace/blob/main/ace-test/CHANGELOG.md
134
+ rdoc_options: []
135
+ require_paths:
136
+ - lib
137
+ required_ruby_version: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: 3.2.0
142
+ required_rubygems_version: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ requirements: []
148
+ rubygems_version: 3.6.9
149
+ specification_version: 4
150
+ summary: Testing knowledge base for ACE -- guides, patterns, and workflows for fast,
151
+ reliable tests.
152
+ test_files: []