如何让PHPUnit打印内部异常?

时间:2017-01-26 18:42:48

标签: php phpunit

当出现问题时,有没有办法让PHPUnit打印内部异常?

这是一个简单的例子:

class TestTest extends \PHPUnit\Framework\TestCase
{
    function test() {
        throw new Exception("Outer exception message", 0, new Exception("Inner exception message"));
    }
}

我想看到这两条消息,但我只看到外面的消息。

2 个答案:

答案 0 :(得分:0)

  1. 装饰者模式很有帮助。
  2. isPrimeNumber

    <强> 2。喜欢装饰器,在每次测试中直接编译异常消息。

    class OuterDecoratorException extends \Exception {
    
      private $innerException;
    
      public function __construct(string $message, \Exception $innerException) {
        $this->message = $message;
        $this->innerException = $innerException;
      }
    
      public function __toString(): string {
        return \sprintf(
          "Outer: %s Inner: %s",
          $this->getMessage(),
          $this->innerException->getMessage()
        );
      }
    
    }
    
    
    
    throw new OuterDecoratorException("Outer message", new \Exception("Inner message"));
    
    1. 否则您必须扩展库。请参阅手册 - 如何扩展框架。

答案 1 :(得分:0)

PHPUnit already supports this.

\PHPUnit\Framework\TestCase

它并不表示您的环境无法正常启动。我怀疑这是因为你正在使用名称空间,而IIRC,PHPUnit不支持。将PHPUnit_Framework_TestCase更改为wire [7:0] A; wire [7:0] neg_A; assign A = 8'd4; // 4 assign neg_A = 0 - A; // -4