我的問題
AVA日誌記錄(t.log
)只是一個測試內工作,但沒有設置(before
,beforeEach
)或拆除(after*
)函數中。AVA:日誌生成外測試沒有在控制檯所示
這意味着對調試和複製非常有用的有意義的設置/拆卸數據將丟失。這種情況發生在成功和失敗的測試中,並且有和沒有--verbose
標誌。
代碼
import test from 'ava';
test.before(t => {
// This runs before all tests
t.log('before - 1');
});
test.before(t => {
// This runs after the above, but before tests
t.log('before - 2');
});
test.after('cleanup', t => {
// This runs after all tests
t.log('after');
});
test.after.always('guaranteed cleanup', t => {
// This will always run, regardless of earlier failures
t.log('after always');
});
test.beforeEach(t => {
// This runs before each test
t.log('beforeEach');
});
test.afterEach(t => {
// This runs after each test
t.log('afterEach');
});
test.afterEach.always(t => {
// This runs after each test and other test hooks, even if they failed
t.log('afterEachAlways');
});
test(t => {
t.log('A test');
t.pass();
});
test(t => {
t.log('A test');
t.fail();
});
輸出
$ ava run.js --verbose
✔ [anonymous]
ℹ A test
✖ [anonymous] Test failed via `t.fail()`
ℹ A test
1 test failed [00:22:08]
[anonymous]
ℹ A test
/Users/adam/Personal/tmp/ava-bug-log-in-before-each/run.js:46
45: t.log('A test');
46: t.fail();
47: });
Test failed via `t.fail()`
請注意,只有從測試(A test
)打印內容的節目。所有其他日誌都會丟失。
我的問題
怎樣才能看到日誌從測試套件的安裝和拆卸步驟?
請注意,如果直接輸出到console.log,則會打印出行。這是ava記錄器在這裏表現怪異。 –
@AssafLavie真的,但使用'console.log'打破我們的代碼準則(esbint與[airbnb樣式](https://github.com/airbnb/javascript)),我寧願避免「忽略此行」指示因爲他們使代碼不那麼幹淨。希望能用't.log'找到一個簡單的解決方法。清楚地說明了 –
。剛剛注意到。無論如何,它似乎是一個艾娃的缺陷。當你調用't.log'(你可以測試這個,btw)或者日誌累積(有一些內部數組用來推送行)在測試開始時被重置時,它要麼沒有使用相同的執行上下文。我會打開一個錯誤。 –