相关疑难解决方法(0)

注意:使用未定义的常量STDOUT - 假设为'STDOUT'

我正在尝试在Xampp中设置Amazon Aws Php SDK.

安装SDK后,我尝试使用以下代码从Amazon S3下载存储桶.

<?php

error_reporting(-1);
ini_set('display_errors', 'on');

include_once ('aws/aws-autoloader.php');
use Aws\S3\S3Client;

$client = S3Client::factory(array(
     'key'    => '__my__key__',
     'secret' => '__secret__key__'
));

$destination = 'downloaded_bucket';
$source_bucket = '__my__bucket__name';
$key_prefix = '';
$options = array('debug'=>true);

$client -> downloadBucket($destination,$source_bucket,$key_prefix,$options);
?>
Run Code Online (Sandbox Code Playgroud)

现在从我的浏览器执行此PHP,我收到以下错误.

Notice: Use of undefined constant STDOUT - assumed 'STDOUT' in __my__path\Aws\S3\Sync\AbstractSyncBuilder.php on line 294
STDOUT
Warning: fwrite() expects parameter 1 to be resource, string given in __my__path\Aws\S3\Sync\DownloadSyncBuilder.php on line 124
STDOUT
Warning: fwrite() expects parameter 1 to be resource, …
Run Code Online (Sandbox Code Playgroud)

php xampp stdout amazon-s3 amazon-web-services

20
推荐指数
2
解决办法
8907
查看次数

PHPUnit - 转储变量

我刚刚开始使用PHPUnit,并且想知道是否存在转储变量内容的构建方式?

用例是因为我已经在谈论我正在开发的代码,所以我可以使用PHPUnit来测试代码的稳定性,还可以在开发时输出调试信息.

我知道xdebug可以为我填补这个空白,但有时候只是更容易在输出中转储一些信息而不是摆弄我的IDE调试器,这对于追溯错误的原因更有用.

我知道我可以做一个常规的var_dump,我只是想知道PHPUnit是否有一个接口.

谢谢!

编辑:

决定按照大卫的回答一起破解它.

绝不是一个完美的解决方案,但它能为我完成这项工作.如果有人有兴趣:

*** PHPUnit-3.6.3/PHPUnit/Framework/TestCase.php    2011-11-09 12:25:38.000000000 -0500
--- PHPUnit/Framework/TestCase.php  2011-11-09 15:27:02.193317219 -0500
***************
*** 291,296 ****
--- 291,298 ----
       * @var boolean
       */
      private $outputBufferingActive = FALSE;
+   
+   public static $ob_output = array();

      /**
       * Constructs a test case with the given name.
***************
*** 913,921 ****
--- 915,927 ----
          }

          try {
+           ob_start();
              $testResult = $method->invokeArgs(
                $this, array_merge($this->data, $this->dependencyInput)
              );
+           
+           Static::$ob_output[ $method->name ] = ob_get_contents();
+           ob_end_clean();
          }

          catch …
Run Code Online (Sandbox Code Playgroud)

php phpunit unit-testing

14
推荐指数
4
解决办法
3万
查看次数

在phpunit测试中回显

我一直试图echo填写我的phpunit测试但到目前为止没有运气.

我阅读了有关xml配置文件的文档,显然debug参数是我正在寻找的.不幸的是它仍然无效.无论如何这是我的xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit colors="true"
         processIsolation="true"
         verbose="true"
         debug="true">
</phpunit> 
Run Code Online (Sandbox Code Playgroud)

这两个processIsolationverbose被接受,但debug并非如此.

当我直接将它传递给phpunit时,该命令实际上工作得很好:

phpunit --debug MyTest.php # here stuff is echoed correctly
Run Code Online (Sandbox Code Playgroud)

但是使用xml配置文件看起来它被忽略了.

php phpunit

13
推荐指数
1
解决办法
2万
查看次数

有没有办法判断--debug或--verbose是否在测试中传递给PHPUnit?

我正在做一些重载到使用CaptureEntirePageScreenshotToString函数的PHPUnit的Selenium扩展,我想只打印截图的路径,因为我们只在传递--verbose或--debug时才去.

例如, phpunit --debug ./tests

然后在我的代码中的某处(这是psudo代码)

if (--debug)
  echo "Screenshot: /path/to/screenshot.png
Run Code Online (Sandbox Code Playgroud)

建议?

php phpunit

9
推荐指数
1
解决办法
742
查看次数

它们是 PHPUnit 中的个性化进度指示器吗?

在编写 PHPUnit 测试时,其中一些测试需要很长时间才能执行。为了检查某些函数,我需要检查许多不同的变量组合,这会导致非常长的测试。

是否可以告诉 PHPUnit 测试进行了多远,以便它可以将测试的中间进度输出到命令行?现在它只是在那里等待 2 分钟,没有任何进展迹象。

我只是在寻找一个额外的进度指示器,它将成为 PHPUnit 的一部分,而不仅仅是一个自定义的echo,我可以自己编写。

php phpunit

4
推荐指数
1
解决办法
470
查看次数