Skip to content

Commit

Permalink
added readme
Browse files Browse the repository at this point in the history
Signed-off-by: Matteo Collina <hello@matteocollina.com>
  • Loading branch information
mcollina committed Dec 14, 2023
1 parent e3c9123 commit 82face3
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 1 deletion.
85 changes: 85 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# borp

Borp is a typescript-aware runner for tests written using `node:test`.
It also support code coverage via [c8](http://npm.im/c8).

Borp is self-hosted, i.e. Borp runs its own tests.

## Install

```bash
npm i borp --save-dev
```

## Usage

```bash
borp --coverage
```

Borp will autumatically run all tests files matching `*.test.{js|ts}`.

### Example project setup

As an example, consider having a `src/add.ts` file

```typescript
export function add (x: number, y: number): number {
return x + y
}
```

and a `test/add.test.ts` file:

```typescript
import { test } from 'node:test'
import { add } from '../src/add.js'
import { strictEqual } from 'node:assert'

test('add', () => {
strictEqual(add(1, 2), 3)
})
```

and the following `tsconfig`:

```json
{
"$schema": "https://json.schemastore.org/tsconfig",
"compilerOptions": {
"outDir": "dist",
"sourceMap": true,
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"esModuleInterop": true,
"strict": true,
"resolveJsonModule": true,
"removeComments": true,
"newLine": "lf",
"noUnusedLocals": true,
"noFallthroughCasesInSwitch": true,
"isolatedModules": true,
"forceConsistentCasingInFileNames": true,
"skipLibCheck": true,
"lib": [
"ESNext"
],
"incremental": true
}
}
```

Note the use of `incremental: true`, which speed up compilation massively.

## Options

* `--coverage` or `-C`, enables code coverage
* `--only` or `-o`, only run `node:test` with the `only` option set
* `--watch` or `-w`, re-run tests on changes
* `--timeout` or `-t`, timeouts the tests after a given time; default is 30000 ms
* `--coverage-exclude` or `-X`, a list of comma-separated patterns to exclude from the coverage report. All tests files are ignored by default.

## License

MIT
1 change: 0 additions & 1 deletion borp.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@ try {
const localPrefix = relative(process.cwd(), config.prefix)
exclude = exclude.map((file) => posix.join(localPrefix, file))
}
console.log('>> Excluding from coverage:', exclude)
const report = Report({
reporter: ['text'],
tempDirectory: covDir,
Expand Down

0 comments on commit 82face3

Please sign in to comment.