Commit graph

1677 commits

Author SHA1 Message Date
Michael Miller
291b4c75a8
Compiler error if stub defined in a method 2022-03-12 23:02:33 -07:00
Michael Miller
94872a498d
Better string representation of method call 2022-03-12 19:26:18 -07:00
Michael Miller
20087f1c57
Treat any tokens starting with _spectator as reserved 2022-03-12 19:17:38 -07:00
Michael Miller
5ad29f486f
Better formatting for empty arguments 2022-03-12 17:49:07 -07:00
Michael Miller
ca827a3c52
Initial work on null (object) double 2022-03-12 17:07:34 -07:00
Michael Miller
f82719746d
Stubable -> Stubbable 2022-03-12 15:45:48 -07:00
Michael Miller
7931847164
Cleanup and docs 2022-03-12 15:43:12 -07:00
Michael Miller
151926fd25
Fix captured arguments not handling splat 2022-03-12 14:31:39 -07:00
Michael Miller
ea46af00a6
Add method to define stubs 2022-03-12 14:31:19 -07:00
Michael Miller
123dd0efca
Obscure parameters to avoid accidental usage 2022-03-12 13:58:20 -07:00
Michael Miller
c8864b169e
Quick def methods should accept any args 2022-03-12 13:51:58 -07:00
Michael Miller
f497aeb79d
Fix redefinition of method with splat argument 2022-03-12 13:15:26 -07:00
Michael Miller
c1a14d1ad2
Add logging 2022-03-12 12:59:44 -07:00
Michael Miller
59f966d0e0
Fix missing double name
Rename internal method to _spectator_stubbed_name.
This is a better name for mocks and doubles.
Improve some handling around stubbed name.
2022-03-12 12:17:27 -07:00
Michael Miller
56f1c77a6c
Move method masking macro to Stubable
Rename to stub_all.
2022-03-12 11:56:54 -07:00
Michael Miller
85cc28c499
Utility method to define a method and a stub override 2022-03-12 11:41:47 -07:00
Michael Miller
8de457d80c
Handle previous_def and super - don't redefine method 2022-03-12 11:34:35 -07:00
Michael Miller
554e215898
Prevent ugly "has no type" errors 2022-03-12 11:33:56 -07:00
Michael Miller
12eeb02a8d
Move method redefinition for stub to Stubable
Require stub or raise UnexpectedMessage for all double methods.
Expose abstract_stub macro to require a stub.
2022-03-12 11:11:22 -07:00
Michael Miller
9b94245bd8
Stub's type might not match return type (subclass or union) 2022-03-12 11:08:58 -07:00
Michael Miller
d891422b3a
Don't need to recreate method by hand 2022-03-12 11:08:29 -07:00
Michael Miller
76c1d6a096
Some rework of stubs and doubles 2022-03-12 09:39:32 -07:00
Michael Miller
ae14a47329
Rename Response to Stub 2022-03-05 20:09:56 -07:00
Michael Miller
ced98778a4
Document and test MethodCall 2022-03-05 16:15:42 -07:00
Michael Miller
13f185b801
Capture and report arguments in exception message 2022-03-05 16:06:01 -07:00
Michael Miller
d16c55984c
Fixup macros 2022-03-05 15:39:19 -07:00
Michael Miller
2e15686d2d
Use internal arg name 2022-03-05 12:31:00 -07:00
Michael Miller
ec57105afd
Support response constraints
Reduce union expansion by casting at key points.
2022-03-05 12:21:31 -07:00
Michael Miller
8668e495ef
Placeholder mocks DSL 2022-03-05 10:41:52 -07:00
Michael Miller
2adc867843
Initial work on response constraints 2022-03-05 10:41:39 -07:00
Michael Miller
de7cd90d11
Add type capturing arguments 2022-03-04 17:16:45 -07:00
Michael Miller
d7f8c2b958
Cleanup and document double 2022-03-03 23:12:35 -07:00
Michael Miller
7e65d94cee
Match RSpec double name string 2022-03-03 22:41:18 -07:00
Michael Miller
9594604770
Obscure and disallow double name method 2022-03-03 22:34:57 -07:00
Michael Miller
5644d54470
Support double names 2022-03-03 22:31:40 -07:00
Michael Miller
26deea3d20
Initial work on Double 2022-03-03 22:10:09 -07:00
Michael Miller
8ac6546bdd
Rip out more existing mocks 2022-02-28 22:15:29 -07:00
Michael Miller
0ea7890ece
Merge branch 'master' into mock-redesign 2022-02-28 20:39:33 -07:00
Michael Miller
31d68a9ca3
Don't capture original block as proc 2022-02-22 16:55:11 -07:00
Michael Miller
35f8779ceb
Forward Example procsy to_s to example
https://gitlab.com/arctic-fox/spectator/-/issues/70
2022-02-22 16:36:16 -07:00
Michael Miller
eb8bd88927
Handle case with typeless block
Fixes syntax:
`stub method(&block)`

To stub a block with args, use:
`stub method(&block : Type -> Type)`

Addresses https://github.com/icy-arctic-fox/spectator/issues/42
2022-02-21 18:17:44 -07:00
Michael Miller
92e839415d
Fix sample iteration with single block arg (not tuple) 2022-01-26 13:14:30 -07:00
Michael Miller
d6112bd2dd
Rip out mocks 2022-01-26 12:41:41 -07:00
Michael Miller
4057089c20
Support multiple block arguments in sample block
https://github.com/icy-arctic-fox/spectator/issues/41#issuecomment-1010192486
2022-01-11 15:53:53 -07:00
Michael Miller
dd49fe3a67
Support string interpolation for example names 2022-01-10 21:29:05 -07:00
Michael Miller
aabec269cb
Raise compilation error for string interpolation in group name 2022-01-10 21:11:28 -07:00
Michael Miller
07aa968d68
Report failed expectation line
In output listing the failures, the comment line now shows the failed expectation line.
Previously this showed the example's source line.
2022-01-03 18:47:56 -07:00
Michael Miller
4d81031274
Fix usage of 'expect' outside test block
Previously gave weird runtime erorr about mismatched groups.
Now correctly produces a compilation error.
2021-12-13 02:42:02 -07:00
Michael Miller
d9269e17a8
Better implementation of explicit subject 2021-12-02 01:57:34 -07:00
Michael Miller
315a318d7d
Explicit "provided" block description
Implements https://gitlab.com/arctic-fox/spectator/-/issues/69
2021-12-01 19:11:36 -07:00
Michael Miller
59ce312341
Fix typos and spelling 2021-11-28 15:45:17 -07:00
Michael Miller
f1f1659836
Fix adding stubs to class methods on mocked types 2021-10-11 23:03:50 -06:00
Michael Miller
5692a77a1b
Update naming from partial to target 2021-10-11 23:03:12 -06:00
Michael Miller
53f7c94e8a
Add missing negation variants for method stubs 2021-10-11 22:39:16 -06:00
Michael Miller
36354082c7
Pass arguments to original/fallback for stubbed top-level methods
Addresses https://github.com/icy-arctic-fox/spectator/issues/36
2021-09-28 19:02:42 -06:00
Michael Miller
a95c5bcab7
Better handling with be match against Value types and nil
Releates to https://github.com/icy-arctic-fox/spectator/issues/37
2021-09-28 18:22:41 -06:00
Michael Miller
99ced17516
Handle undefined methods with have_attributes matcher
Instead of producing a compilation error on missing/undefind methods, 
substitute in an "undefined" value.
This shows better output to the user.
2021-09-26 12:50:17 -06:00
Michael Miller
2f1ac1374b
Use RegexMatcher to force used =~ operator 2021-09-22 17:57:56 -06:00
Michael Miller
64b9c13436
Remove Test prefix 2021-09-22 17:53:42 -06:00
Michael Miller
627a288358
Missing doc 2021-09-20 11:01:00 -06:00
Michael Miller
a51640105c
Re-add pre- and post-condition hooks
Accidentally removed in hook refactoring.
Addresses https://gitlab.com/arctic-fox/spectator/-/issues/62
2021-09-16 09:01:51 -06:00
Todd Sundsted
a3b7f5f4b1 Handle directories with spaces in the path/filename 2021-09-16 09:02:34 -04:00
Michael Miller
632845574f
Stringify tags
Addresses https://gitlab.com/arctic-fox/spectator/-/issues/61
2021-09-11 16:05:20 -06:00
Michael Miller
09dcbdb383
Fix dumb with JUnit and HTML output 2021-08-19 13:55:58 -06:00
Michael Miller
09414e611b
Brighten yellow for pending 2021-08-19 13:45:22 -06:00
Michael Miller
e037e42fa7
Fix links to examples not working 2021-08-19 13:14:53 -06:00
Michael Miller
f5ec9ccff6
CSS!
The HTML report looks beautiful.
2021-08-19 13:07:15 -06:00
Michael Miller
efca1409c6
Fix dumb 2021-08-19 13:00:51 -06:00
Michael Miller
708fd692ae
Add actual label to match data description 2021-08-19 11:46:07 -06:00
Michael Miller
babc7ebc3a
Tweaks 2021-08-18 22:15:50 -06:00
Michael Miller
18b42304c9
Use lists and fix some issues 2021-08-18 18:18:18 -06:00
Michael Miller
dd0ef01369
Initial code for HTML formatter 2021-08-18 17:50:09 -06:00
Michael Miller
f4fc599a1d
Add display_name convenience method 2021-08-18 17:47:20 -06:00
Michael Miller
c49522a791
Allow tags on top-level groups 2021-08-18 15:57:22 -06:00
Michael Miller
21d14bd814
Add f-prefix variants of groups and examples
For instance: `fit` for `it "...", :focus`
2021-08-18 13:55:21 -06:00
Michael Miller
2b27ea5a01
Quick implementation of filter_run_when_matching
Needed for focus tests.
2021-08-18 13:46:54 -06:00
Michael Miller
fd4812207a
Whitespace 2021-08-18 11:27:06 -06:00
Michael Miller
1e82608500
Add methods matching RSpec for configuring include and exclude tags 2021-08-17 23:40:58 -06:00
Michael Miller
c209fe7259
Add ascend methods 2021-08-17 22:10:01 -06:00
Michael Miller
8d366bf637
Fully implemented test filtering by tags
Addresses https://gitlab.com/arctic-fox/spectator/-/issues/16
2021-08-17 21:54:01 -06:00
Michael Miller
a9a46c76ad
Support tag filtering with value 2021-08-17 21:34:26 -06:00
Michael Miller
b79dd4361e
Initial implementation of tag filtering 2021-08-17 20:52:06 -06:00
Michael Miller
38ea2e7f96
Address Ameba issue 2021-08-17 15:02:34 -06:00
Michael Miller
94d5c96e7d
Implement an example filter that supports matching groups
Addresses https://gitlab.com/arctic-fox/spectator/-/issues/25 and 
https://github.com/icy-arctic-fox/spectator/issues/24
2021-08-17 14:09:37 -06:00
Michael Miller
65799fdd3b
Pass along end line 2021-08-17 13:49:58 -06:00
Michael Miller
67b4c0589b
Implement NodeIterator 2021-08-17 12:55:49 -06:00
Michael Miller
cf7d67c972
Simplify ExampleIterator and remove unecessary allocations 2021-08-17 12:55:22 -06:00
Michael Miller
837e4cb85d
Implement Indexable(Node) on ExampleGroup 2021-08-17 12:54:36 -06:00
Michael Miller
4e5a52215a
Simplify 2021-08-16 20:27:27 -06:00
Michael Miller
3803d4582c
Use Iterable(Node) instead of ExampleGroup 2021-08-16 20:27:21 -06:00
Michael Miller
aa81f1d948
Change ExampleFilter to a NodeFilter
Node filters may operate on example groups as well as examples.
2021-08-08 12:13:59 -06:00
Michael Miller
0f7a9ed9e8
Remove append and prepend variants of hook definition methods
RSpec defines these as applying to a scope (example, context, suite) as 
opposed to example group.
Mimicing this is currently not possible in Spectator and would require a 
substantial restructure of how hooks are handled.
This may be implemented in the future.
2021-08-08 11:50:30 -06:00
Michael Miller
91d21b38e2
Lazily initialize global DSL spec builder
Require config to create a spec builder.
Config should be fully set up before any DSL is encountered.
2021-08-08 11:25:06 -06:00
Michael Miller
605b82c532
Add prepend and append variants of hooks to DSL 2021-08-08 10:51:39 -06:00
Michael Miller
841efc236d
Fix flipped append/prepend of "after" hooks 2021-08-08 10:27:34 -06:00
Michael Miller
b9f0a31a4a
Overhaul hooks
Mostly cleanup and make managing hooks simpler, hopefully.
Tests indicate this configuration matches hook execution order of RSpec.
2021-08-07 21:45:49 -06:00
Michael Miller
10b652f4b5
Remove unique/temp names 2021-07-31 19:11:51 -06:00
Michael Miller
3dc3b88dbe
Add "after" hooks in reverse order to match RSpec 2021-07-31 15:48:54 -06:00
Michael Miller
edcb5118e6
Show pending count only if there are pending examples 2021-07-31 15:02:21 -06:00
Michael Miller
abe78410c4
Formatting 2021-07-31 14:18:59 -06:00
Michael Miller
868aa1d00a
Support custom handling of hooks 2021-07-31 14:16:39 -06:00
Michael Miller
f53ffabf6b
Support label for aggregate_failures block 2021-07-31 12:04:43 -06:00
Michael Miller
4c125d98d4
Implement aggregate_failures 2021-07-31 11:56:53 -06:00
Michael Miller
9a97596b84
Allow named arguments in provided block 2021-07-31 10:15:16 -06:00
Michael Miller
ef1832721c
Remove unecessary branch 2021-07-20 18:29:26 -06:00
Michael Miller
e8413db33f
Support custom messages for failed expectations
Fixes https://gitlab.com/arctic-fox/spectator/-/issues/28
2021-07-17 17:42:25 -06:00
Michael Miller
0c4379c731
Formatting 2021-07-17 16:55:43 -06:00
Michael Miller
e60cc2a447
Phrasing 2021-07-17 16:41:49 -06:00
Michael Miller
eda4328a92
Blank line after stack trace 2021-07-17 16:35:35 -06:00
Michael Miller
52a0ae938a
Consistency with location and location? 2021-07-17 16:34:15 -06:00
Michael Miller
e316dd8a11
Fix missing example location in output 2021-07-17 16:27:38 -06:00
Michael Miller
6c6dff363b
Track source location of pending result 2021-07-17 16:25:32 -06:00
Michael Miller
7cb1545e83
Don't use failure location in failed example block output
This is problematic, since the failure could have ocurred outside the 
example block (in a method call).
The comment line under the failure details will still point to the 
result location, if it's available.
2021-07-17 16:15:11 -06:00
Michael Miller
81f1966417
Use location instead of source 2021-07-17 16:12:10 -06:00
Michael Miller
7e2b267e93
Use failure location in output if available
Fixes https://gitlab.com/arctic-fox/spectator/-/issues/57
2021-07-17 16:04:19 -06:00
Michael Miller
f75991f34c
Formatting 2021-07-17 15:21:15 -06:00
Michael Miller
937b084f66
Support defining hooks in configuration block 2021-07-17 15:20:58 -06:00
Michael Miller
009266c8c2
Fix naming of hook methods when using a block 2021-07-17 14:32:55 -06:00
Michael Miller
a810eef16c
Add before_suite and after_suite 2021-07-17 14:19:16 -06:00
Michael Miller
af13a89257
Pass along fallback reason 2021-07-17 14:04:17 -06:00
Michael Miller
1b53607f8e
Cleanup and add docs 2021-07-17 14:01:27 -06:00
Michael Miller
571bc7d8a5
Reuse iterative example group macro code
Add support for x prefix to skip sample and random_sample groups.
2021-07-17 13:25:38 -06:00
Michael Miller
e506c6b981
Implement random_sample 2021-07-17 13:05:03 -06:00
Michael Miller
9d72d26630
Handle sample count 2021-07-17 12:49:11 -06:00
Michael Miller
76a23131cb
More checks for missing block in DSL
Improved some error messages.
2021-07-17 12:36:21 -06:00
Michael Miller
640857bef2
Pretty up iterative group names 2021-07-17 12:15:41 -06:00
Michael Miller
d8e9d3128a
Fetch iteration item from group 2021-07-17 12:07:04 -06:00
Michael Miller
c79cb62a61
Quick implementation of iterative group builder 2021-07-17 12:06:53 -06:00
Michael Miller
c24c2cb5e1
Quick implementation of node builders 2021-07-17 11:10:44 -06:00
Michael Miller
c7a90b3e64
Shorten names and cleanup 2021-07-17 10:47:16 -06:00
Michael Miller
6c55301d0b
Merge remote-tracking branch 'origin/master' into release/0.10 2021-07-11 00:16:25 -06:00
Michael Miller
01672fc073
Bump version to 0.9.40 2021-07-10 23:16:05 -06:00
Michael Miller
4d030fb85a
Fix no_args being passed incorrectly 2021-07-10 22:43:54 -06:00
Michael Miller
d9bb8e33fe
Fix finding stubs on types (static methods) 2021-07-10 22:41:10 -06:00
Michael Miller
23fd075d51
Add stub when using expect().to receive()
This appears to match RSpec's behavior.
2021-07-10 20:28:51 -06:00
Michael Miller
384fb3093f
Allow stubs returning nil to be used on NoReturn calls 2021-07-10 20:19:10 -06:00
Michael Miller
e47ae613a5
Check for and allow expected exits 2021-07-10 19:27:01 -06:00
Michael Miller
35cb0b527e
Use ExampleFailed instead of ExpectationFailed 2021-07-10 18:15:01 -06:00
Michael Miller
5f61a24656
Provide default stub for Process.exit
Prevent terminating the process from within a test.
2021-07-10 14:18:07 -06:00
Michael Miller
294bd61a25
Don't force top-level namespace 2021-07-10 14:17:14 -06:00
Michael Miller
b07e13aeb4
Remove custom handling of NoReturn 2021-07-10 13:57:23 -06:00
Michael Miller
a395e26bae
Revert "Fix methods not being stubbed with expect().to receive syntax"
This reverts commit 1c865d1f4b.
2021-07-10 13:21:21 -06:00
Michael Miller
06f9f380c9
Workaround for stubbing NoReturn method with Nil
Fixes spec/issues/github_issue_29_spec.cr:15
2021-07-10 12:54:09 -06:00
Michael Miller
aa12cdf17c
Introduce non-expectation error ExampleFailed
Used by fail method.
Still todo: Output from failed example is missing because there are no 
expectations.
2021-07-10 03:32:55 -06:00
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