Commit graph

1483 commits

Author SHA1 Message Date
Michael Miller
ccedcdac42
Use getter! macro 2021-07-10 03:31:22 -06:00
Michael Miller
82f26dbb91
Don't return nil for NoReturn stubs
Raise instead, which prevents making the method's return type nilable.
2021-07-08 11:36:07 -06:00
Michael Miller
aee5897922
Fix comma placement 2021-07-06 23:32:51 -06:00
Michael Miller
7081c168a5
Missing comma 2021-07-05 22:36:37 -06:00
Michael Miller
3e4079d408
Remove Spec namespace 2021-07-05 11:49:16 -06:00
Michael Miller
6a01ab3531
Merge master into release/0.10 2021-07-05 11:32:45 -06:00
Michael Miller
78de2be994
Bump version to 0.9.39 2021-07-02 21:59:16 -06:00
Michael Miller
92dbfc2a8e
Avoid calling NoReturn methods 2021-07-02 21:52:56 -06:00
Michael Miller
1c865d1f4b
Fix methods not being stubbed with expect().to receive syntax 2021-07-02 21:45:16 -06:00
Michael Miller
83ab5f56f0
Use previous_def if method was defined in class 2021-07-02 21:01:41 -06:00
Michael Miller
a0537484f4
Allow creation of doubles without a definition
Utilizes anonymous doubles to implement this.
Fixes https://github.com/icy-arctic-fox/spectator/issues/30
2021-07-02 19:18:14 -06:00
Michael Miller
d4e2954725
Remove Nop checks 2021-07-02 18:56:24 -06:00
Michael Miller
e3f6fb3c7c
Add no_args support for stubs
Fixes https://github.com/icy-arctic-fox/spectator/issues/28
2021-07-02 18:43:39 -06:00
Michael Miller
9b01771c67
Fix missing setup log messages 2021-06-19 12:05:45 -06:00
Michael Miller
989f53c6d6
Initial code for sample groups 2021-06-19 11:57:56 -06:00
Michael Miller
44ade24fb7
Generate context one or more times
This is necessary for iterative (sample) groups so they don't share a 
context.
2021-06-19 11:33:26 -06:00
Michael Miller
4b8d28c916
Wording on compiler error for block args 2021-06-19 10:54:31 -06:00
Michael Miller
1f91836de1
Use block to create examples
Seems that nodes can't be duped/cloned easily.
2021-06-13 14:45:01 -06:00
Michael Miller
4ff27defff
Initial code for iterative (sample) groups 2021-06-13 13:16:31 -06:00
Michael Miller
e51ad6d504
Check if provided and given are used in a method 2021-06-12 17:06:43 -06:00
Michael Miller
04d6c70f59
Cleaner distinction between metadata and tags 2021-06-12 16:45:45 -06:00
Michael Miller
704c28e822
Reimplement given as provided and deprecate
The behavior is slightly different now.
Nested example blocks aren't allowed in `provided`.
The block produces one example, not multiple.
2021-06-12 16:23:38 -06:00
Michael Miller
71a5c39f6c
Use skip instead of pending tag
Specify default reason for skipping groups.
2021-06-12 12:14:19 -06:00
Michael Miller
02a4b2946e
Display failed expectations and error if an example had both 2021-06-12 12:10:44 -06:00
Michael Miller
621ddb466f
Support output of multiple failed expectations 2021-06-12 11:59:57 -06:00
Michael Miller
88f0c23a3e
Add support for sub-index in result blocks 2021-06-12 11:40:21 -06:00
Michael Miller
dcdb87e31a
Output match data to XML 2021-06-12 11:24:21 -06:00
Michael Miller
ba3a03736e
Show match data in failure block 2021-06-12 11:08:46 -06:00
Michael Miller
a5ed5d0fb1
Pass exception failure message to error 2021-06-12 10:33:28 -06:00
Michael Miller
2407c43132
Only show "Not yet implemented" for missing test block 2021-06-12 09:53:42 -06:00
Michael Miller
bfbeaf7454
Default reason for missing example block "Not yet implemented" 2021-06-11 21:16:46 -06:00
Michael Miller
6f4cc12dfd
Mark example pending if block is omitted 2021-06-11 21:03:46 -06:00
Michael Miller
117ed90185
Fix DSL usage of tags
Ensure parent tags don't get modified by duplicating the hash.
Force tag value to string.
2021-06-11 20:22:08 -06:00
Michael Miller
a061bd2044
Check pending, skip, and reason tags for reason 2021-06-11 19:29:29 -06:00
Michael Miller
12cba23fa3
Treat skip tag as pending 2021-06-11 19:03:16 -06:00
Michael Miller
14d45756e9
Consolidate default pending reason 2021-06-11 18:59:10 -06:00
Michael Miller
4f2df78c34
Deprecate current behavior of pending blocks 2021-06-11 18:55:56 -06:00
Michael Miller
b43b09f46d
Change order of pending result parameters 2021-06-11 18:31:41 -06:00
Michael Miller
3b1db7b772
Pass along pending tag value if available 2021-06-11 18:30:12 -06:00
Michael Miller
4a9ec3df4a
Store tags with an optional string value 2021-06-11 18:26:55 -06:00
Michael Miller
d9088b39ca
Add skip message when using xit (and variants) 2021-06-11 18:11:46 -06:00
Michael Miller
5a2a71ffe8
Pass and output along reason for pending/skip result 2021-06-09 22:15:15 -06:00
Michael Miller
8d73434e0b
Add ability to mark example skipped/pending mid-test 2021-06-09 21:57:17 -06:00
Michael Miller
ab6487cbfa
Merge branch 'release/0.10' into pending 2021-06-05 22:44:54 -06:00
Michael Miller
b9d77321b3
Fix premature call of after_all hook 2021-06-05 22:44:34 -06:00
Michael Miller
a08d5202fe
Implement pending examples as lighweight examples
Drop test code block if a pending, skip, or x-prefix macro is used.
2021-06-05 12:51:46 -06:00
Michael Miller
15c5b0991d
Fix doc 2021-06-02 23:54:38 -06:00
Michael Miller
12f06abf11
Move profile JSON formatting into Profile class 2021-06-02 23:51:53 -06:00
Michael Miller
bd34b87e22
Simplify JSON formatter by reusing Example's to_json 2021-06-02 23:44:36 -06:00
Michael Miller
8536fcf58c
Fix full_description being an object 2021-06-02 23:41:23 -06:00
Michael Miller
98ba607583
Dumb whitespace 2021-06-02 23:37:01 -06:00
Michael Miller
835fa40773
Handle nil location 2021-06-02 23:35:41 -06:00
Michael Miller
39e917ce57
Consistent location fields 2021-06-02 23:09:30 -06:00
Michael Miller
8f3a7c0a5a
Basically done JSON formatter 2021-06-02 22:48:48 -06:00
Michael Miller
fa3e9dd34d
Implement JUnit formatter 2021-05-30 15:02:30 -06:00
Michael Miller
e30d5c1981
Use multiple << on a single line 2021-05-30 14:21:42 -06:00
Michael Miller
0a7909fb7a
Cleanup 2021-05-30 10:44:09 -06:00
Michael Miller
877831a98b
Add docs 2021-05-30 10:17:49 -06:00
Michael Miller
a4042a9684
Extend PendingBlock from ResultBlock and rename to PendingResultBlock 2021-05-30 10:02:25 -06:00
Michael Miller
7215e28d75
Implement TAP formatter 2021-05-29 23:09:28 -06:00
Michael Miller
40e189a1d1
Fix method name 2021-05-29 23:09:18 -06:00
Michael Miller
48fb293ba0
Define notification type for messages 2021-05-29 22:59:56 -06:00
Michael Miller
76c525de52
Fix call to example_finished 2021-05-29 22:47:53 -06:00
Michael Miller
f02e1acb3b
Remove lazy iteration
Fixes issue with empty? method eating the first example for failure and 
pending lists.
2021-05-29 18:35:01 -06:00
Michael Miller
5e1ca34146
Fix pending results not being counted 2021-05-29 17:59:16 -06:00
Michael Miller
6d8d117ec2
Handle nodes with no name 2021-05-29 17:50:30 -06:00
Michael Miller
4a44d038fb
Re-enable desired logging on framework error 2021-05-29 17:45:49 -06:00
Michael Miller
fccd55ed0a
Improve appearance of multi-line error messages 2021-05-29 17:33:45 -06:00
Michael Miller
76dd5603de
Fix harness not updating current 2021-05-29 17:13:14 -06:00
Michael Miller
71d0af7cd5
Merge branch 'release/0.10' into reporting 2021-05-29 16:57:22 -06:00
Michael Miller
39c95397fd
Merge branch 'master' into release/0.10 2021-05-29 16:56:57 -06:00
Michael Miller
92f758084d
Bump version to 0.9.38 2021-05-27 15:20:11 -06:00
Michael Miller
edb18dcf95
Fix for default logger being cleaned up before Spectator runs
Resolves https://github.com/icy-arctic-fox/spectator/issues/27
2021-05-27 15:17:27 -06:00
Michael Miller
99378c0f36
Merge branch 'release/0.10' into reporting 2021-05-19 20:15:51 -06:00
Michael Miller
a3305a9273
Merge branch 'master' into release/0.10 2021-05-19 20:15:36 -06:00
Michael Miller
55398709de
Bump version to 0.9.37 2021-05-19 19:51:08 -06:00
Michael Miller
e3576c8924
Add support for be === and be =~
Addresses https://github.com/icy-arctic-fox/spectator/issues/26
2021-05-19 19:46:46 -06:00
Michael Miller
453f6a2fce
Cleanup 2021-05-18 20:10:02 -06:00
Michael Miller
867c06bd67
Initial working document formatter 2021-05-18 20:01:58 -06:00
Michael Miller
1e2f3f7c66
Use index offset argument 2021-05-18 19:38:04 -06:00
Michael Miller
1addc46f7e
Remove parameter from stop method 2021-05-18 19:03:40 -06:00
Michael Miller
c0befe63e9
Don't use random seed unless randomized 2021-05-18 18:50:43 -06:00
Michael Miller
b970abd334
Limit generated seed to < 100,000 2021-05-16 20:39:35 -06:00
Michael Miller
1525317e2c
Pass along and output random seed 2021-05-16 20:38:02 -06:00
Michael Miller
36f9f2b434
Return true from run method if successful 2021-05-16 20:23:16 -06:00
Michael Miller
ebf04b360e
Add profiling info 2021-05-16 20:21:04 -06:00
Michael Miller
4bb4c2f16e
Dump profile before summary 2021-05-16 19:52:53 -06:00
Michael Miller
aa13b077f3
No need to type restrict io method 2021-05-16 19:47:07 -06:00
Michael Miller
1e3e0daa04
Place error count in parens next to failures 2021-05-16 19:42:15 -06:00
Michael Miller
aee171656a
Fix '<anonymous>' showing up for root group 2021-05-16 19:37:45 -06:00
Michael Miller
84ac41967b
Formatting 2021-05-16 19:29:20 -06:00
Michael Miller
cc09cb1b77
Cleanup and consolidate common code for result blocks 2021-05-16 19:28:59 -06:00
Michael Miller
f81c498aef
Add error block component 2021-05-16 17:14:09 -06:00
Michael Miller
ed3ad662d2
Move failure command list to its own component 2021-05-16 17:13:06 -06:00
Michael Miller
2316377c6e
Rename ExampleFilterCommand to ExampleCommand 2021-05-16 17:08:15 -06:00
Michael Miller
031e892dad
Rename SummaryBlock to Stats 2021-05-16 16:56:19 -06:00
Michael Miller
3ecb04e293
Initial work on summary output 2021-05-16 15:03:37 -06:00
Michael Miller
ee294a3ec2
Use Array instead of Enumerable 2021-05-16 13:22:25 -06:00
Michael Miller
0ed684afbc
Integrate report and summary events 2021-05-16 13:20:02 -06:00
Michael Miller
ceb368a7f4
Overhaul Report 2021-05-16 13:19:04 -06:00
Michael Miller
fb436d2ec4
Define a pending result as neither passing nor failing 2021-05-16 12:31:01 -06:00
Michael Miller
832ffbf403
Split to make it obvious run is called 2021-05-16 12:22:00 -06:00
Michael Miller
59c67c26a9
Result visitor methods should take result as argument 2021-05-16 12:19:16 -06:00
Michael Miller
9a62c1386a
Remove parameter from start_dump and close events 2021-05-16 10:51:50 -06:00
Michael Miller
ba2922e655
Implement broadcast formatter methods 2021-05-16 10:12:40 -06:00
Michael Miller
5da21f8ede
Update Ameba and address issues 2021-05-15 19:51:44 -06:00
Michael Miller
aa03e3527d
Formatting 2021-05-15 19:45:17 -06:00
Michael Miller
eebcba0749
Mostly implemented progress formatter 2021-05-15 19:45:01 -06:00
Michael Miller
e2f4051927
Split error handler from failure method 2021-05-15 19:44:06 -06:00
Michael Miller
a36982d6d6
Use visitor pattern 2021-05-15 19:43:13 -06:00
Michael Miller
d5c4d5e822
Call fail instead of failure on visitor 2021-05-15 19:42:59 -06:00
Michael Miller
618e9e195a
Begin triggering events for formatters 2021-05-15 18:31:52 -06:00
Michael Miller
4eb457f197
Define and document formatter methods 2021-05-15 17:01:29 -06:00
Michael Miller
1ea209184e
Formatting 2021-05-12 21:41:56 -06:00
Michael Miller
81f509c083
Get config, spec, builder, and runner working together 2021-05-12 21:41:34 -06:00
Michael Miller
83c4b01e84
Set up placeholder formatters 2021-05-12 21:41:12 -06:00
Michael Miller
ff084bb3cd
Fix dumb mistakes 2021-05-12 21:40:48 -06:00
Michael Miller
b8b6b3b609
Add pass?/fail? methods to Result types 2021-05-12 21:39:50 -06:00
Michael Miller
72b2e7ebcb
Fix paths and references 2021-05-08 23:46:19 -06:00
Michael Miller
7294f2da67
Change ConfigSource to "applicator"
Remove unecessary abstract base class.
Shorten name of CLI arguments config applicator.
2021-05-08 23:45:54 -06:00
Michael Miller
f09a6a87e5
Remove TestSuite middle-man object 2021-05-08 23:38:13 -06:00
Michael Miller
e7138080a6
Clean up and simplify Config and Builder 2021-05-08 23:37:33 -06:00
Michael Miller
8a4735b9e6
Use Formatters instead of Reporters (and Formatters) 2021-05-08 23:35:29 -06:00
Michael Miller
f2459cfe94
Override === to call includes?
Allows the use of a filter in pattern matching scenarios (select).
2021-05-08 23:33:59 -06:00
Michael Miller
e7c3d8f060
Use filter if only one is provided
This is less overhead than creating a composite filter for one child 
filter.
2021-05-08 22:53:39 -06:00
Michael Miller
83d7657b18
Use enum flags for run modes 2021-05-08 22:51:54 -06:00
Michael Miller
e8848d6855
Merge branch 'release/0.10' into reporting 2021-05-08 13:23:57 -06:00
Michael Miller
88b323bc27
Move common inspect code up to Node 2021-05-08 13:22:13 -06:00
Michael Miller
d292c01e74
Remove direct references to Example in ExampleGroup 2021-05-08 12:43:41 -06:00
Michael Miller
ef7fca3f95
Bit of cleanup around parent/group 2021-05-08 12:10:27 -06:00
Michael Miller
d7ba47cc49
Clean up hook code 2021-05-08 12:00:29 -06:00
Michael Miller
e47e625016
Remove circular dependency with Node and ExampleGroup 2021-05-07 21:04:17 -06:00
Michael Miller
6bea36d8b6
Move Node out of Spec namespace 2021-05-07 20:09:33 -06:00
Michael Miller
d7bc376429
Some initial work on formatters 2021-05-07 20:05:00 -06:00
Michael Miller
31d819e4c9
Nuke formatting types to prep for new types 2021-05-06 22:11:38 -06:00
Michael Miller
f3afd74dc5
Empty classes for reporting 2021-05-06 22:10:59 -06:00
Michael Miller
ff5d855389
Cleanup harness some 2021-05-06 22:10:40 -06:00
Michael Miller
02b98ea61b
Remove reference to example from result
Pass examples instead of results into formatters.
2021-04-26 18:47:11 -06:00
Michael Miller
f24d634ccb
Merge branch 'release/0.10' into specs 2021-04-26 17:19:25 -06:00
Michael Miller
f549fcfa7a
Minor changes to configure methods 2021-04-26 17:17:18 -06:00
Michael Miller
6c98d7107c
Docs 2021-04-26 17:11:53 -06:00
Michael Miller
5dfc60d4cd
Fix nil reference error when example name is unavailable 2021-04-26 16:53:04 -06:00
Michael Miller
29594eefab
Merge branch 'master' into release/0.10 2021-04-26 11:19:08 -06:00
Michael Miller
18fb2d3879
Bump version to 0.9.36 2021-04-25 23:39:26 -06:00
Michael Miller
f0b524dc47
Remove workaround
https://github.com/icy-arctic-fox/spectator/issues/1 should be resolved 
by https://github.com/crystal-lang/crystal/pull/8234
2021-04-20 19:27:41 -06:00
Michael Miller
25638d766e
Bump version to 0.9.35 2021-04-18 18:08:08 -06:00
Michael Miller
93e270f87a
Support variables and methods for type matcher (be_a).
Addresses https://github.com/icy-arctic-fox/spectator/issues/25
2021-04-17 09:38:29 -06:00
Michael Miller
d612657b15
Merge branch 'release/0.10' into specs 2021-03-31 15:28:16 -06:00
Michael Miller
3d702f9bc6
Merge branch 'master' into release/0.10 2021-03-31 15:19:30 -06:00
Michael Miller
6481403c6f
Bump version to 0.9.34 2021-03-31 15:01:01 -06:00