2015-06-15 60 views
0

我有一個php項目,它具有在我的單元測試代碼路徑中內在測試的作曲家依賴關係。這裏是我的示例代碼:Travis CI默認情況下不區分大小寫?

<?php 
// where FooBar is a composer package but I'm purposely typing it incorrectly here 
use \fooBaR 
public function appendNameToWords(array $words, $name) 
{ 
    $start = microtime(true); 
    $newWords = array_map(function($word){ 
     return $word . $name; 
    }, $words); 
    // logs the diff between start and end time 
    FooBar::logTimer($start); 
    return $newWords; 
} 

我的測試僅僅是測試方法,但當然在執行我的源代碼行FooBar::logTimer。問題是如果我輸錯了類FooBarfooBaR,我期望我的測試失敗。不幸的是,Travis的構建正在通過......但我不清楚爲什麼。

.travis.yml文件:

language: php 
php: 
- 5.6 
install:  script/install 
script: 
- script/test 

任何想法是什麼地方出錯了?

回答

0

當涉及類名時,PHP不區分大小寫。如果您的代碼聲明名爲Foo的類,並且此定義已執行,您還可以實例化任何其他案例樣式,如foofOO

PHP將保留觸發自動加載的事件(即第一次PHP遇到類名),如果該案例樣式不匹配區分大小寫的文件名,則使用該類將失敗。

我認爲寫在正確的案例風格的類不應該測試與單元測試。這是一個無法在自己的代碼中解決的問題 - 如果您使用功能強大的IDE來了解所有可以使用的類,它基本上不存在。

此外:您的問題沒有提供演示問題的代碼。它包含的代碼可能不符合你的想法。

相關問題