我似乎無法在任何地方找到這個問題的答案,但它可能就在我面前(通常是)。對于我的項目:使用 PHPUnit,我在多個文件中進行了許多測試,但有一些測試(故意)需要很長時間才能運行,因此默認情況下我將它們標記為“跳過”。我想要的是一種使用默認命令行指令運行所有測試(除了跳過的測試)的方法,但如果過濾器術語專門用于跳過的測試,則僅運行這些測試,(或者它們是包含在主運行中)并且忽略跳過的指令。如果我可以訪問中使用的術語,我就可以實現這一點,--filter但我不知道這是否可能。我知道我可以使用測試套件,并且很可能必須切換到該范例,但如果可能不這樣做,那么我更喜歡這樣做,因為這意味著我可以在 99% 的時間使用默認測試命令每次都必須指定套房。作為參考,我將我的test命令作為別名(到project\vendor\bin\phpunit),這使得指令變得快速。不幸的是,設置一個@group值并在默認別名 ( project\vendor\bin\phpunit --exclude-group) 中使用該值,然后使用$ test --group不起作用(這兩個參數相互抵消)。
1 回答

郎朗坤
TA貢獻1921條經驗 獲得超9個贊
我想最簡單的方法是將您的測試分成兩個測試套件。當您在 XML 配置中設置defaultTestSuite
屬性時,您不必在運行命令時指定測試套件test
。如果您想運行其他套件,可以使用該--testsuite
選項來實現。
這是一個精簡的示例:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit defaultTestSuite="unit" /* ... */>
? ? <testsuites>
? ? ? ? <testsuite name="unit">
? ? ? ? ? ? <directory>tests/Unit</directory>
? ? ? ? </testsuite>
? ? ? ? <testsuite name="functional">
? ? ? ? ? ? <directory>tests/Functional</directory>
? ? ? ? </testsuite>
? ? </testsuites>
? ? <!-- ... -->
</phpunit>
phpunit
將運行unit
測試套件phpunit --testsuite=functional
將運行functional
測試套件phpunit --testsuite=unit,functional
將運行兩個測試套件
- 1 回答
- 0 關注
- 102 瀏覽
添加回答
舉報
0/150
提交
取消