2015-04-20 38 views

回答

0

如果您跳過測試中的慢速測試,使用$this->markTestSkipped(),則無法阻止執行dataProvider。

這是因爲在執行它們之前,PHPUnit必須獲取將傳遞給測試的數據。

可能的解決方案:

  1. 設定從命令行(-d key[=value]選項),將通過將dataProvider和慢測試讀取兩者的環境變量。 dataProvider將返回一個虛擬數組,測試將標記爲跳過。

  2. 標記測試使用@group註釋和使用--exclude-group命令行選項,以便緩慢組測試將不會執行

  3. 重構測試所以沒有dataProvider均使用,假定沒有不便如慢將測試作爲不同的案例。

+0

我會嘗試解決方案1.解決方案2沒有幫助:當使用--exclude-group時,數據提供者仍然會被執行。 3.我使用一個數據提供者來具有不同的測試用例。 –