Skip to content

Commit 4dbdcfa

Browse files
committed
Update README
1 parent 25366ea commit 4dbdcfa

File tree

1 file changed

+27
-13
lines changed

1 file changed

+27
-13
lines changed

README.md

+27-13
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,37 @@ That's a lofty goal. As a start, we'll keep things simple.
88

99
## What can QA help me do today?
1010

11-
Nothing yet, because we haven't release any source code or binaries yet. :(
11+
1. Run your tests faster. Run `qa run <type>:<glob>` in your project directory and watch your test results scream by as they run in parallel. QA provides a beautiful, easy to understand report. No Rakefile necessary!
12+
13+
2. See which tests are slowing down your testrun. QA highlights tests that are dramatically slower than the average test duration. Look for the 🐌 at the end of successful testrun!
14+
15+
3. See which test-specific stderr and stdout, even when tests are run in parallel! generated it.
16+
17+
4. Generate a flamegraph (or icicle graph) for the entire testrun, using `-save-flamegraph`, `-save-icegraph`. See also `-save-palette`.
18+
19+
5. Run your tests in parallel. QA does this for you automatically, for test types `rspec`, `rspec-pendantic`, `minitest`, `minitest-pendantic`, `test-unit`, and `test-unit-pendantic`. The `-pendantic` suffix runs each test method in its own worker process. (The default is to run each test case in its own worker fork.)
20+
21+
6. Track threads, GC, require, SQL queries, and other noteworthy operations in a tracing format that can be used with the `chrome://tracing` tool, using `-save-trace` option.
22+
23+
7. If a test fails, see source code snippets and, in some cases, actual values of local variables (use option `-errors-capture-locals`, experimental and Mac OS X only) for for each entry in the stack trace.
24+
25+
8. Record test output as TAP-J, using `-save-tapj` option.
26+
27+
9. Special ActiveRecord integration means QA will automatically partition tests across multiple databases, one per worker. If the required test databases do not exist, they will be setup automatically before tests begin. NOTE This functionality is highly experimental.
1228

1329
## What languages and test frameworks does QA support?
1430

15-
None yet. Please open an issue to request one!
31+
Ruby's RSpec, MiniTest, test-unit. Be sure to use `bundle exec` when you run qa, if you're managing dependencies with Bundler.
1632

17-
## What will QA help me do tomorrow?
33+
Please open an issue to request other languages and frameworks!
1834

19-
1. Run your tests faster. Just run `qa` (in your project directory) and watch your test results scream by as they run in parallel. QA auto-detects your framework and provides a beautiful, easy to understand report. No Rakefile or other boilerplate necessary.
35+
## What will QA help me do tomorrow?
2036

21-
2. Analyze and eliminate [test flakiness](#whatis_flaky). By recording test outcomes across different runs, QA can integrate with existing tools (along with some new ones) to identify and diagnose flaky, slow, and otherwise problematic tests.
37+
1. Analyze and eliminate [test flakiness](#whatis_flaky). By recording test outcomes across different runs, QA can integrate with existing tools (along with some new ones) to identify and diagnose flaky, slow, and otherwise problematic tests.
2238

23-
3. A faster and more focused development cycle. QA will prioritize test ordering based on what's failed recently and what files you're changing.
39+
2. A faster and more focused development cycle. QA will prioritize test ordering based on what's failed recently and what files you're changing.
2440

25-
4. Run your tests *even faster*. QA will package your test execution environment, run it on a massive fleet of remote machines and stream the results back to your terminal in real time.
41+
3. Run your tests *even faster*. QA will package your test execution environment, run it on a massive fleet of remote machines and stream the results back to your terminal in real time.
2642

2743

2844
## Getting started with QA
@@ -43,7 +59,7 @@ test/
4359
Example usage and output:
4460
```
4561
> cd $project
46-
> qa
62+
> qa run minitest:test/test**.rb
4763
???
4864
```
4965

@@ -71,10 +87,8 @@ Now the good news: with QA, we've set out to address the shortcomings we see wit
7187
## QA Roadmap
7288

7389
### Basic functionality
74-
- [x] Write initial binary to detect simple Ruby minitest tests
75-
- [x] Expand ruby test detection to rspec.
7690
- [x] Attaching a custom reporter to test runner
77-
- [ ] Use process forking to amortize cost of starting test runner
91+
- [x] Use process forking to amortize cost of starting test runner
7892
- [ ] Support for Go, Java, JavaScript, Python, PHP
7993

8094
### Parallelization
@@ -87,9 +101,9 @@ Now the good news: with QA, we've set out to address the shortcomings we see wit
87101
- [ ] Support for additional external execution environments, like Kubernetes, Mesos
88102

89103
### Tracking stats / artifacts
90-
- [ ] Support for working with a local audit folder
104+
- [x] Support for working with a local audit folder
91105
- [ ] Support for working with a remote audit folder (e.g. S3)
92-
- [ ] Generate trace file
106+
- [x] Generate trace file
93107
- [ ] Generate single html file report with results, audits, flakiness statistics
94108
- [ ] Add integration with system monitoring agents (e.g. performance copilot)
95109

0 commit comments

Comments
 (0)