亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHPUnit:訪問 TestCase 方法中的過濾器術語

PHPUnit:訪問 TestCase 方法中的過濾器術語

PHP
慕娘9325324 2023-09-15 21:40:27
我似乎無法在任何地方找到這個問題的答案,但它可能就在我面前(通常是)。對于我的項目:使用 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將運行兩個測試套件


查看完整回答
反對 回復 2023-09-15
  • 1 回答
  • 0 關注
  • 102 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號