Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix: #944
- Loading branch information
Showing
4 changed files
with
115 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
--- | ||
title: The .tap Folder | ||
eleventyNavigation: | ||
key: .tap Folder | ||
parent: Docs | ||
order: 47 | ||
--- | ||
|
||
> _tl;dr_ - Tap puts stuff in `.tap`. It's probably best to | ||
> `.gitignore` this folder. | ||
The `.tap` folder is used to store various things that tap uses. | ||
|
||
## `.tap/processinfo` | ||
|
||
Every process that is spawned in the course of running tests is | ||
assigned a UUID and information about it is stored for later | ||
analysis. This is used by tap to be able to know which tests need | ||
to be re-run when you do `tap --changed`, for example. | ||
|
||
The data is created by | ||
[`@tapjs/processinfo`](https://github.com/tapjs/processinfo). | ||
Each of the files in this folder have a filename corresponding to | ||
the uuid, and contain a JSON-encoded | ||
[`ProcessInfoNodeData`](https://tapjs.github.io/processinfo/interfaces/process_info_node.ProcessInfoNodeData.html) | ||
object. | ||
|
||
These nodes have a `root` and `parent` fields, creating a tree | ||
structure of processes. You can explore the tree by using the `i` | ||
command in the [REPL](./repl.md). | ||
|
||
``` | ||
TAP> i test/config.ts | ||
test/config.ts: | ||
date: 2023-10-05T22:58:15.094Z | ||
command: /usr/local/bin/node | ||
args: | ||
- --import=file:///Users/isaacs/dev/tapjs/tapjs/node_modules/@tapjs/mock/dist/esm/import.mjs | ||
- --loader=file:///Users/isaacs/dev/tapjs/tapjs/node_modules/ts-node/esm.mjs | ||
- --no-warnings | ||
- --enable-source-maps | ||
- --import=file:///Users/isaacs/dev/tapjs/tapjs/node_modules/@tapjs/processinfo/dist/esm/import.mjs | ||
- /Users/isaacs/dev/tapjs/tapjs/src/run/test/config.ts | ||
cwd: /Users/isaacs/dev/tapjs/tapjs/src/run | ||
pid: 93041 | ||
ppid: 93003 | ||
code: 0 | ||
runtime: 3737.6802079999998 | ||
TAP> i 686a4eb3-e82f-4b6b-b365-2c38195776f9 | ||
686a4eb3-e82f-4b6b-b365-2c38195776f9: | ||
date: 2023-10-05T22:58:31.447Z | ||
command: /usr/local/bin/node | ||
args: | ||
- /Users/isaacs/dev/tapjs/tapjs/src/run/dist/esm/index.js | ||
- blah.test.js | ||
cwd: /Users/isaacs/dev/tapjs/tapjs/src/run/.tap/fixtures/test-run.ts-fail-to-find-all-named-test-files | ||
pid: 93259 | ||
ppid: 93149 | ||
parent: ee929bda-9b80-43af-a5d7-da233c1f80f9 | ||
code: 1 | ||
runtime: 490.024416 | ||
``` | ||
|
||
## `.tap/coverage` | ||
|
||
The coverage generated by each test process is stored to this | ||
folder, with a `<uuid>.json` filename corresponding to the file | ||
for the process in `.tap/processinfo`. | ||
|
||
These are V8 coverage dump files, with a `source-map-cache` | ||
attached to be able to turn V8's byte-offset-based coverage | ||
reporting into line/column reporting used by the istanbul | ||
reporters. | ||
|
||
It's the same format used by the `NODE_V8_COVERAGE` directory, | ||
but limited only to the files in your program that you've opted | ||
to provide coverage for, instead of _everything_ in | ||
`node_modules` and node's built-in modules. You can use this | ||
folder as an argument to any other program that knows how to | ||
interpret this format, or put coverage files in this folder and | ||
tap will include them in its coverage reporting. | ||
|
||
## `.tap/fixtures` | ||
|
||
This is the folder where the [`@tapjs/fixture` | ||
plugin](./plugins/fixture.md) puts its test fixture files. | ||
|
||
## `.tap/test-results` | ||
|
||
Whenever tests are run, the [raw TAP](./tap-format.md) output is | ||
saved to this folder. This is what the [`tap | ||
replay`](./cli.11ty.js#tap-replay) command uses to replay the | ||
results of the previous test run. | ||
|
||
## Ignoring or Saving | ||
|
||
There's little harm in exposing the `.tap` folder, as the only | ||
sensitive data it typically contains (other than your code | ||
itself) is file and folder paths. | ||
|
||
However, becuase it _does_ contain file and folder paths, it's | ||
system specific, and generally not something you'd want to check | ||
into source control, so I recommend adding `/.tap` to your | ||
`.gitignore` file. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters