小编Ame*_*mer的帖子

在Zend框架1应用程序中,PHPUnit无法在控制器中加载application.ini但在Models中工作

我们正在使用Zend framework 1.11.11.我们的服务器有PHPUnit 3.7.9.我们知道我们的Zend Framework版本不支持PHPUnit 3.7.9.但到目前为止,我们已经能够使用PHPUnit来测试模型.

但是,当涉及到测试控制器时,PHPUnit失败了.放入dispatch()代码后try/catch block,我们了解到它无法加载一个属性Zend_Registry.它是定义的application.ini.在模型中使用相同的属性,我们没有问题.

我们可能遗失了什么吗?或者是不可能将PHPUnit 3.7.9与我们的ZF版本一起使用?

这是phpunit.xml:

<phpunit bootstrap="./application/bootstrap.php" colors="true">
    <testsuite name="Precision Tests">
    <directory>./</directory>
</testsuite>

<filter>
    <whitelist>
        <directory suffix=".php">../application/</directory>
        <directory suffix=".php">../library/</directory>
        <exclude>
            <directory suffix=".phtml">../application/</directory>
            <directory>../library/Zend</directory>
            <file>../application/Bootstrap.php</file>
            <file>../application/controllers/ErrorController.php</file>
        </exclude>
    </whitelist>
</filter>
<logging>
    <log type="coverage-html" target="./log/report" charset="UTF-8" yui="true" hightlight="true"
        lowupperbound="50" highlowerbound="80">
        <log type="testdox" target="./log/testdox.html">
        </log>
    </log>
    </logging>
</phpunit>
Run Code Online (Sandbox Code Playgroud)

测试中的bootstrap.php:

<?php

function load($name) {
    $paths = array(
        "../application/controllers",
        "../library",
        "../application/models"
    );
    foreach($paths as $dir) {
        $name = str_replace("_", "/", $name);
        if(file_exists($dir."/".$name.".php")) …
Run Code Online (Sandbox Code Playgroud)

phpunit unit-testing zend-framework

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

在golang中使用子进程测试时如何生成单元测试覆盖率?

我有大部分代码的单元测试.但我无法弄清楚如何为主包中的main()中的某些代码生成单元测试覆盖率.

主要功能非常简单.它基本上是一个选择块.它会读取标志,然后调用另一个函数/执行某些操作,或者只是在屏幕上打印帮助.但是,如果未正确设置命令行选项,它将以各种错误代码退出.因此,需要进行子流程测试.

我尝试了子流程测试技术,但修改了代码,使其包含覆盖标记:

cmd := exec.Command(os.Args[0], "-test.run=TestMain -test.coverprofile=/vagrant/ucover/coverage2.out")
Run Code Online (Sandbox Code Playgroud)

以下是原始代码:https ://talks.golang.org/2014/testing.slide#23上述幻灯片的说明:http://youtu.be/ndmB0bj7eyw?t = 47m16s

但它不会生成封面配置文件.我一直无法弄清楚为什么不.它确实为主进程执行测试生成封面配置文件,但当然,在子进程中执行的任何代码都不会标记为已执行.

我尝试尽可能多地实现代码覆盖.我不确定我是否遗漏了某些东西,或者是否有更简单的方法可以做到这一点.或者如果不可能的话.

任何帮助表示赞赏.

谢谢

阿梅尔

unit-testing go

4
推荐指数
2
解决办法
1091
查看次数

如何访问主包外的标志?

当然,我们在main.go中解析主要包中的标志.然后我们有另一个包,我们想要读取一些标志的值.

flags.Args()工作正常,它将返回所有非标志值.

但我无法弄清楚如何读取已经解析的值除了main之外的包中的标志.

可能吗?

谢谢

阿梅尔

flags go

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

标签 统计

go ×2

unit-testing ×2

flags ×1

phpunit ×1

zend-framework ×1