2

我有一個小型的Python項目,只有幾個文件和一些測試文件。有32個測試。我一直在Windows 10上使用Visual Studio 2015來編寫代碼,它對於運行代碼,編輯等很有用。它甚至發現了所有的單元測試,當我運行它們時,它們會在它們旁邊放置綠色和紅色標記,具體取決於它們是否合格。但是,當我在Visual Studio中選擇「全部運行」(即,在沒有調試的情況下運行測試)時,需要19秒來運行32個測試,並且它們每個運行大約需要300-400ms才能運行。起初,我只是想,嗯,我猜在Python中運行單元測試只是比較慢。在Visual Studio下運行unittest測試的Python總是這麼慢嗎?

但是,如果我輟學到命令行,然後執行:

Python -m unittest test1.py test2.py test3.py [etc] 

然後,它成功運行32個測試在13毫秒。所以,它速度超過1000倍。

我似乎無法在Visual Studio中的任何位置找到任何選項或設置,這將允許我更改任何有關測試的選項或設置。我可以理解它花了一點時間,因爲它單獨記錄每個測試,並在測試瀏覽器中的項目旁標記通過/失敗狀態。但是慢1000倍?不。

目前,19s不等待太久。但是當這個測試達到100或1000個測試時,我會查看大量的分鐘來運行單元測試。或者只是退出到命令行,並沒有很好地收集任何可能失敗的測試的信息。

有沒有其他人有這個問題,或任何人都可以想象什麼可能會導致它?或者我只是堅持下去?

+0

最糟糕的情況,就是從命令行運行。 :) – erip

+0

嗯,是的,我想到了這一點,並使自己的腳本找到所有的測試並運行它們。 –

+0

所有圖形api都很慢,您可以獲得工具提示,自動完成,插件以及所有可能的庫加載的好處,這是命令行工具永不死亡的原因之一 – Gang

回答

2

簡短的回答是,這是因爲它分開運行每個測試(即,就好像你做了python -m unittest test1.py; python -m unittest test2.py; ...)。

+0

不是。如果我用4個測試運行一個文件,從Visual Studio運行它總共需要3s,單個測試的時間在390到760毫秒之間。如果我從命令行運行同一個文件,所有四個測試都是總共完成3毫秒。 –

+1

對不起,讓我澄清一下:它爲每個test_運行一個單獨的進程,而不是每個帶有測試的文件。 –

+1

哎。我可以看到爲什麼:因此它可以得到結果。但是,考慮到需要這麼短的時間,如果它能夠首先運行它們,那將會很不錯。如果他們都通過了,不需要經過並單獨運行,尋找哪些失敗。 –

相關問題