2017-09-24 74 views
3

我的問題

AVA日誌記錄(t.log)只是一個測試內工作,但沒有設置(beforebeforeEach)或拆除(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)打印內容的節目。所有其他日誌都會丟失。

我的問題

怎樣才能看到日誌從測試套件的安裝和拆卸步驟?

+0

請注意,如果直接輸出到console.log,則會打印出行。這是ava記錄器在這裏表現怪異。 –

+0

@AssafLavie真的,但使用'console.log'打破我們的代碼準則(esbint與[airbnb樣式](https://github.com/airbnb/javascript)),我寧願避免「忽略此行」指示因爲他們使代碼不那麼幹淨。希望能用't.log'找到一個簡單的解決方法。清楚地說明了 –

+1

。剛剛注意到。無論如何,它似乎是一個艾娃的缺陷。當你調用't.log'(你可以測試這個,btw)或者日誌累積(有一些內部數組用來推送行)在測試開始時被重置時,它要麼沒有使用相同的執行上下文。我會打開一個錯誤。 –

回答

2

你能爲此打開一個問題嗎? https://github.com/avajs/ava/issues

我同意這應該工作。

+0

[很高興](https://github.com/avajs/ava/issues/1536 ),完成[一個單獨的git回購示例問題](https://github.com/adamatan/ava-logging-bug)。 –

相關問題