Netbeans的“没有测试执行”(Netbeans “no tests executed”)

2019-09-16 12:32发布

我有一个单元测试PHP项目包括在内。 我使用的开发Netbeans和想有PHPUnit的一体化在我的IDE。 如果我从运行在命令行PHPUnit的,这是工作。 如果我按Alt + F6运行Netbeans中没有测试运行测试 ,我得到的消息:

没有测试执行(发生也许是一个错误,验证Output窗口。)

所述结构(它是一个Zend框架2模块):

Foo/
  src/
    Foo/
      Bar.php
      Baz.php
  tests/
    Foo/
      BarTest.php
    bootstrap.php
    phpunit.xml
  Module.php
  autoload_register.php

BarTest.php内容

namespace Foo;

use PHPUnit_Framework_TestCase as TestCase;

class BarTest extends TestCase
{
    public function testIsWorking ()
    {
        $this->assertTrue(true);
    }
}

我phpunit.xml:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="bootstrap.php">
    <testsuite name="Foo">
        <directory>./</directory>
    </testsuite>
</phpunit>

我bootstrap.php中:

// Set error reporting pretty high
error_reporting(E_ALL | E_STRICT);

// Get base, application and tests path
define('BASE_PATH',  dirname(__DIR__));

// Load autoloader
require_once BASE_PATH . '/autoload_register.php';

在NetBeans项目属性我想:

  1. 要设置测试目录Foo/tests (这是必需的,我认为)
  2. 要专门设置的引导文件(不是必需的,我认为)
  3. 要专门设置的XML配置文件(不需要我认为)
  4. 要设置专门运行所有*测试文件(不是必需的,我认为)

我如何才能确保Netbeans的可以执行我PHPUnit测试?

Answer 1:

你可以简单地把所有这一切都为您的PHPUnit的bootstrap.php中:

<?php

error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');


Answer 2:

问题是,Netbeans的期望坐落在一个根项目文件夹中的所有测试。 如果它没有这样做的方式,代码覆盖率和其他功能无法正常工作。 见增强更多的信息。

这个问题是可以解决的创建自定义的测试套件:

  • 在你的项目根文件夹中创建目录“测试”或“测试”,如果它尚未创建。
  • 在这种“测试”文件夹中创建文件TestSuite.php
  • 在NetBeans项目设置添加此TestSuite.php。
<?php

class TestSuite extends PHPUnit_Framework_TestSuite
{
    public static function suite()
    {
        $suite = new TestSuite();

        $file = '/Foo/tests/Foo/BarTest.php';

        echo 'Adding test: ' . $file . "\n";
        $suite->addTestFile($file);

        //add here algorithm that will search and add all test files from your /tests directory

    return $suite;

}

Netbeans的7.2将有不错的功能运行在单独的目录中的所有测试 。



Answer 3:

虽然我已设置使用error_reporting为高电平时,PHP CLI没有的display_errors打开。 这是它,所以现在我得到了我的报告回来...



Answer 4:

NetBeans被没有找到自动加载类。 然后,在项目设置你必须说什么类自动加载,引导等。

在我的情况正好去了:项目属性 - >测试 - > PHPUnit的。 我将该选项设置为“使用引导”,并告诉引导的路径。

我的引导文件具有自动加载,然后我所有的测试类是没有错误的执行。



文章来源: Netbeans “no tests executed”