當我運行一個筆記本的簡單的測試,效果很好,但是當我從Azure ADO管道運行它,它沒有錯誤。
代碼;
def __init__(自我):
NutterFixture.__init__(自我)
從運行時。nutterfixture進口nutterfixture,標簽
類uTestsDataBricks (NutterFixture):
def assertion_test_SampleB(自我):
維護(1 = = 1)
結果= uTestsDataBricks () .execute_tests ()
結果= uTestsDataBricks () .execute_tests ()
print (result.to_string ())
.getContext .notebook is_job = dbutils.notebook.entry_point.getDbutils () () () .currentRunId () .isDefined ()
如果is_job:
result.exit (dbutils)
錯誤信息:
在一個筆記本,它工作正常,但是當我從Azure ADO管道運行它,它顯示測試執行但我不讓它通過或失敗的結果。我得到一個錯誤:
Nutter 0.1.35版本
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- > 1的測試計劃執行
關鍵:NutterCLI:“<”不支持實例之間的str”和“int”
- - > 1的測試執行
Python致命錯誤:< _io _enter_buffered_busy:無法獲得鎖。BufferedWriter name = ' < stdout > >翻譯關閉,可能是因為守護程序線程
Python運行時狀態:完成(tstate = 00000174 cfecf6d0)
當前線程0 x00000414(最近調用第一個):
<沒有Python框架>
@Chris Konsur:
錯誤消息顯示,有一個問題與標準輸出緩衝區時,Python解釋器是關閉的,這可能與守護程序線程。這個錯誤並不是特定於磚或Azure ADO的管道,這可能是由於一些代碼運行在你的筆記本和測試環境。
一個可能的解決方案是使用一種不同的方法來捕獲和報告測試結果。而不是依靠標準輸出,您可以使用一個測試運行器框架如pytest或unittest來運行測試並生成一個報告,很容易消耗的管道。這些框架還提供額外的功能,如測試發現,測試裝置和測試參數化。
請讓我知道如果這可以幫助你,我們能想到的更多的選擇。