2014-09-28 34 views
0

默認情況下,Laravel加載所有通過作曲家自動加載單元測試文件,正式composer.json看起來是這樣的:Laravel默認通過作曲家自動加載器在生產中包含UnitTest文件。如何預防?

"autoload": { 
    "classmap": [ 
     ...  
     "app/tests/TestCase.php" 
     ... 
    ] 
}, 

這將在研發和生產中使用,因爲有沒有AFAIK DEV/PROD開關。由於測試從未在生產環境中運行,因此可能會過度加載所有測試。

問:

如何防止作曲家自動加載磁帶機加載在某些情況下所有的單元測試文件(如生產)?還是我完全誤解了這裏的某些東西?

+0

這只是創建一個自動加載文件,以便在這種情況下,您可以在代碼中使用TestCase類,而無需顯式包含或需要文件「app/tests/TestCase.php」。 我不確定你的意思是「加載所有UnitTest文件」。當你明確地運行它們時,你的測試用例只能運行(就是你加載的意思)。 – 2014-09-28 03:41:03

+1

「加載所有單元測試文件」可能指的是它們存在於類映射中,並且在解析類映射文件時影響內存使用情況和性能,在執行代碼時未使用。 – Sven 2014-09-30 16:52:02

+0

@jboschiero謝謝,當然測試不會運行,這不是重點。但想象一下,在100個文件中有1000個測試,可能有5MB未使用的代碼在每個應用程序請求中加載到內存中。也許我在這裏完全錯了......但也許不是。我認爲我們應該在開發自動加載器和生產中分開。 – Sliq 2014-09-30 19:20:14

回答