我有以下phpunit.xml文件:
try (Session s = new Session(g);
Tensor learning_phase = Tensor.create(false);
Tensor result = s.runner().feed("input", image).feed("batch_normalization_1/keras_learning_phase", learning_phase).fetch("output").run().get(0)) {
文件结构如下所示:
<phpunit bootstrap="Bootstrap.php" backupGlobals="false">
<testsuites>
<testsuite name="mentor">
<directory>../module/Api</directory>
<directory>../module/Application</directory>
<exclude>../vendor</exclude>
<exclude>vendor</exclude>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory suffix=".php">../module</directory>
</whitelist>
</filter>
</phpunit>
现在是棘手的部分。当我运行../vendor/bin/php一切正常但是如果我运行全局phpunit(/ usr / local / bin / phpunit)它完成了“没有测试执行”的结果。有什么建议吗?
答案 0 :(得分:3)
我找到了phpunit省略所有类的原因 - 这是由于TestCase我试图扩展。我的所有测试都从 Phpunit 5.7 包中的 \ PHPUnit_Framework_TestCase 继承(在供应商中)。 Phpunit 6.1.4 使用命名空间,因此我应该扩展 PHPUnit \ Framework \ TestCase 。通过在测试中更改扩展类,一切正常。
答案 1 :(得分:1)
我认为你需要像这样在作曲家里面使用psr-4:
"autoload": {
"psr-4": {
"": "module/"
}
}
需要更改phpunit.xml之后:
<phpunit bootstrap="Bootstrap.php" backupGlobals="false">
<testsuites>
<testsuite name="mentor">
<directory>module/Api</directory>
<directory>module/Application</directory>
<exclude>../vendor</exclude>
<exclude>vendor</exclude>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory suffix=".php">module</directory>
</whitelist>
</filter>
</phpunit>
我认为您需要将phpunit点更改为文件夹测试而不是模块! 像这样:
<phpunit bootstrap="Bootstrap.php" backupGlobals="false">
<testsuites>
<testsuite name="mentor">
<directory>tests/</directory>
<exclude>../vendor</exclude>
<exclude>vendor</exclude>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory suffix=".php">tests</directory>
</whitelist>
</filter>
</phpunit>