首页 > 解决方案 > 测试函数每次使用相同的输入生成不同的结果

问题描述

我有以下测试功能:

class LinearRegressionTest extends TestCase {
    public function testR(): void {
        self::assertEquals( 10, LinearRegression::r() );
    }

}

和相应的功能,我使用库 php-r (https://github.com/kachkaev/php-r):

use Kachkaev\PHPR\RCore;
use Kachkaev\PHPR\Engine\CommandLineREngine;

class LinearRegression {
    public static function r(): string {
        $r = new RCore( new CommandLineREngine( '/usr/lib/R/bin/R' ) );
        $rProcess = $r->createInteractiveProcess();
        $rProcess->start();

        $rProcess->write( 'x <- 5' );
        $rProcess->write( 'y <- 5' );
        $rProcess->write( 'y + x' );

        return $rProcess->getAllResult();
    }
}

我真的很困惑:当我运行测试时,有时我得到正确的结果(测试通过),但有时测试没有完成(比如一些 while cyklus??)。

我的问题是为什么相同的代码会产生不同的结果?我该如何解决?

标签: phprunit-testingtestingcommand-line

解决方案


推荐阅读