2015-06-15 29 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来了解所有可以使用的类,它基本上不存在。

此外:您的问题没有提供演示问题的代码。它包含的代码可能不符合你的想法。

相关问题