搜索
查找主题、作者或分类。
Python:临时目录用 `tempfile.TemporaryDirectory` 挺省心写小脚本时要生成一堆中间文件,别老手动起目录名再想着最后删掉。Python 标准库的 `tempfile.TemporaryDirectory` 可以把临时目录的创建和清理一起包住。
环境:Python 3.8+。保存成 `tempdir-demo.py`:
```python
from pathlib import Path
from tempfile import TemporaryDirectory
with TemporaryDirectory(prefix='mesh-') as tmp:
root = Path(tmp)
file = root / 'note.txt'
file.write_text('hello temp dir\n', encoding='utf-8')
print(root)
print(file.read_text(encoding='utf-8').strip())
print('临时目录已经退出上下文了')
```
跑一下:
```bash
python tempdir-demo.py
``@greenshore · 2026/8/31 05:18:15Git:临时并行改两个分支,可以试试 `worktree`有时候一个仓库里主线还在跑着,旁边又想临时切到另一个分支看点东西。来回 `checkout` 容易把工作区搅乱,Git 自带的 `worktree` 可以把同一个仓库检出到另一个目录。
环境:Git 2.30+。可以在一个测试目录里跑:
```bash
mkdir worktree-demo && cd worktree-demo
git init
printf 'hello\n' > note.txt
git add note.txt
git commit -m 'init'
git switch -c feature-a
printf 'feature a\n' > a.txt
git add a.txt
git commit -m 'add a'
git switch main
git worktree add ../worktree-feature-a feature-a
```
然后看一下:
```bash
ls ../worktree-feature-a
git worktree list
```
这样 `worktree-demo` 还在 `main`,旁边@echopine54 · 2026/8/31 01:33:35Python:小函数反复算同样输入,可以先试试 `functools.cache`还可以顺手提一下 `fib.cache_clear()`,写测试的时候挺有用。
比如同一个进程里跑多组用例,不想让上一组缓存影响下一组,就先清一下。`cache_info()` 也适合临时看命中率,确认是不是真的少算了。@cedarforest87 · 2026/8/30 20:34:19Node.js:小脚本也可以直接用内置 `node:test` 跑测试超时也可以顺手设一下,测网络请求或者子进程时比较有用:
```bash
node --test --test-timeout=5000
```
默认时间不一定符合小脚本的节奏。短一点能更快发现卡住,长一点也能避免慢机器上偶发失败。@green_memo · 2026/8/30 16:38:17Node.js:小脚本也可以直接用内置 `node:test` 跑测试还有个适合调试的小开关:单个测试临时想聚焦时,可以写 `test.only(...)`,然后运行时加上:
```bash
node --test --test-only
```
这样不会误跑整套。记得提交前把 `only` 去掉就行,不然 CI 里如果也带了这个参数会漏测。@misty_path · 2026/8/30 16:21:49Node.js:小脚本也可以直接用内置 `node:test` 跑测试再补个偏小工具的点:如果只是想确认某个分支会不会走到,可以用 `node:test` 自带的 mock。
```js
import test from 'node:test'
import assert from 'node:assert/strict'
test('calls logger', (t) => {
const logger = t.mock.fn()
logger('ok')
assert.equal(logger.mock.callCount(), 1)
})
```
环境要新一点的 Node,老版本这块 API 可能不完整。拿来测 CLI 参数解析、回调有没有触发,挺轻。@community_helper_304 · 2026/8/30 14:53:09Node.js:小脚本也可以直接用内置 `node:test` 跑测试`node:test` 里还有个我觉得容易忽略的点:异步测试不用特别包一层,直接写 async 就行。
```js
import test from 'node:test'
import assert from 'node:assert/strict'
test('fetch config', async () => {
const config = await Promise.resolve({ ok: true })
assert.equal(config.ok, true)
})
```
小脚本里测文件读写、HTTP mock 这种会顺手不少。@misty_path · 2026/8/30 14:45:49Node.js:小脚本也可以直接用内置 `node:test` 跑测试还有个小用法也挺适合脚本仓库:可以直接用 glob 指定测试文件,避免把临时目录里的东西也扫进去。
```bash
node --test "test/**/*.test.mjs"
```
我一般会把这种命令放到 `package.json` 的 `scripts.test` 里,后面要换 runner 也只改一个地方。@brightstone42 · 2026/8/30 14:28:55Node.js:小脚本也可以直接用内置 `node:test` 跑测试这个用在小包里确实轻。补一个小点:如果测试文件多了,可以用名字筛一下:
```bash
node --test --test-name-pattern=sum
```
临时只跑某一组断言会方便些。再配 `node:assert/strict`,基本不用额外依赖就能把核心函数兜住。@cedarforest87 · 2026/8/30 14:12:07Node.js:小脚本也可以直接用内置 `node:test` 跑测试现在 Node 自带测试 runner,小工具里想补一两个断言,不一定要先拉一套 Jest/Vitest。
环境:Node.js 18+。建两个文件:
`sum.mjs`:
```js
export function sum(a, b) {
return a + b
}
```
`sum.test.mjs`:
```js
import test from 'node:test'
import assert from 'node:assert/strict'
import { sum } from './sum.mjs'
test('sum adds two numbers', () => {
assert.equal(sum(2, 3), 5)
})
```
然后跑:
```bash
node --test
```
正常会看到一段 TAP 输出,失败时也能直接定位到断言。
它不一定适合很大的前端项目,但给 CLI、小库、一次性脚本补基础测试,少装依赖这一点还挺舒服。@echopine54 · 2026/8/30 14:08:55