moved to zod, packages messed up still
This commit is contained in:
parent
15dd03c0ec
commit
a8ee4022bf
35 changed files with 3245 additions and 691 deletions
153
docs/bun-test-output-customization.md
Normal file
153
docs/bun-test-output-customization.md
Normal file
|
|
@ -0,0 +1,153 @@
|
|||
# Bun Test Output Customization Guide
|
||||
|
||||
## Command Line Options
|
||||
|
||||
### Basic Output Control
|
||||
```bash
|
||||
# Run with coverage report
|
||||
bun test --coverage
|
||||
|
||||
# Use specific coverage reporter (text or lcov)
|
||||
bun test --coverage --coverage-reporter=text
|
||||
bun test --coverage --coverage-reporter=lcov
|
||||
bun test --coverage --coverage-reporter=text,lcov
|
||||
|
||||
# Set custom coverage directory
|
||||
bun test --coverage --coverage-dir=my-coverage
|
||||
|
||||
# Run only specific test name patterns
|
||||
bun test --test-name-pattern="HttpClient"
|
||||
bun test -t "should handle"
|
||||
|
||||
# Stop after first failure
|
||||
bun test --bail
|
||||
bun test --bail=3 # Stop after 3 failures
|
||||
|
||||
# Run only tests marked with .only()
|
||||
bun test --only
|
||||
|
||||
# Include todo tests
|
||||
bun test --todo
|
||||
```
|
||||
|
||||
### Reporters
|
||||
```bash
|
||||
# Use JUnit XML reporter for CI/CD
|
||||
bun test --reporter=junit --reporter-outfile=test-results.xml
|
||||
|
||||
# Default console output (no flag needed)
|
||||
bun test
|
||||
```
|
||||
|
||||
### Test Filtering
|
||||
```bash
|
||||
# Run specific test files
|
||||
bun test http.test.ts
|
||||
bun test "**/*integration*"
|
||||
|
||||
# Run tests multiple times to catch flaky tests
|
||||
bun test --rerun-each=3
|
||||
```
|
||||
|
||||
## Configuration in bunfig.toml
|
||||
|
||||
You can set default options in your bunfig.toml file:
|
||||
|
||||
```toml
|
||||
[test]
|
||||
# Always generate coverage
|
||||
coverage = true
|
||||
|
||||
# Set custom timeout
|
||||
timeout = "10s"
|
||||
|
||||
# Set default reporter
|
||||
reporter = "junit"
|
||||
reporter-outfile = "test-results.xml"
|
||||
|
||||
# Set coverage options
|
||||
coverage-reporter = "text,lcov"
|
||||
coverage-dir = "coverage"
|
||||
|
||||
# Test environment
|
||||
preload = ["./test/setup.ts"]
|
||||
|
||||
[test.env]
|
||||
NODE_ENV = "test"
|
||||
LOG_LEVEL = "silent"
|
||||
```
|
||||
|
||||
## Custom Test Setup
|
||||
|
||||
You can customize test output through your test setup files:
|
||||
|
||||
### In test/setup.ts:
|
||||
```typescript
|
||||
// Customize console output
|
||||
console.log = (message) => {
|
||||
// Custom formatting
|
||||
if (typeof message === 'string') {
|
||||
console.info(`[TEST] ${new Date().toISOString()} ${message}`);
|
||||
}
|
||||
};
|
||||
|
||||
// Add custom test utilities
|
||||
global.testHelpers = {
|
||||
logTestStart: (testName: string) => {
|
||||
console.info(`🧪 Starting test: ${testName}`);
|
||||
},
|
||||
logTestEnd: (testName: string, passed: boolean) => {
|
||||
const icon = passed ? '✅' : '❌';
|
||||
console.info(`${icon} Completed test: ${testName}`);
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
### In individual test files:
|
||||
```typescript
|
||||
import { describe, test, expect, beforeEach } from 'bun:test';
|
||||
|
||||
describe('HttpClient', () => {
|
||||
beforeEach(() => {
|
||||
global.testHelpers?.logTestStart('HttpClient test');
|
||||
});
|
||||
|
||||
test('should work', () => {
|
||||
// Your test code
|
||||
global.testHelpers?.logTestEnd('should work', true);
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
## Package.json Scripts
|
||||
|
||||
Add custom test scripts with different output configurations:
|
||||
|
||||
```json
|
||||
{
|
||||
"scripts": {
|
||||
"test": "bun test",
|
||||
"test:coverage": "bun test --coverage",
|
||||
"test:junit": "bun test --reporter=junit --reporter-outfile=test-results.xml",
|
||||
"test:watch": "bun test --watch",
|
||||
"test:verbose": "bun test --coverage --coverage-reporter=text",
|
||||
"test:ci": "bun test --coverage --reporter=junit --reporter-outfile=test-results.xml --bail",
|
||||
"test:specific": "bun test --test-name-pattern"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Environment Variables
|
||||
|
||||
Control output through environment variables:
|
||||
|
||||
```bash
|
||||
# Set log level for tests
|
||||
LOG_LEVEL=debug bun test
|
||||
|
||||
# Silent mode
|
||||
LOG_LEVEL=silent bun test
|
||||
|
||||
# Custom formatting
|
||||
TEST_OUTPUT_FORMAT=json bun test
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue