gpt4 book ai didi

php - Codeception多项测试,1个脚本

转载 作者:可可西里 更新时间:2023-11-01 13:24:27 26 4
gpt4 key购买 nike

我想我的概念可能有误,或者没有正确思考某些事情。我正在寻找一种连接到数据库的方法,然后为表的每一行运行 selenium 测试(在 phantomjs 中)。该测试用于检查定制 CMS 上的损坏图像,并且可以应用于任何 CMS。

我基本上想通过从数据库加载它们的 ID,然后为每个 ID 运行单独的测试来对每个页面(特定类型)运行验收测试。

这是我目前所拥有的:

$I = new WebGuy($scenario);
$results = $I->getArrayFromDB('talkthrough', '`key`', array());
foreach ($results as $r) {
$I->wantTo('Check helpfile '.$r['key'].'for broken images');
$I->amOnPage('/talkThrough.php?id='.$r['key']);
$I->seeAllImages();
}

这在某种程度上是有效的,因为它会一直执行到第一次失败(因为它作为一个带有许多断言的测试运行)。

如何将此作为单独的测试运行?

最佳答案

我最终循环遍历并将失败的 key 存储在逗号分隔的字符串中,并设置一个 bool 值来表示发现失败。

$I = new WebGuy($scenario);
$results = $I->getArrayFromDB('talkthrough', '`key`', array());
$failures = "Broken help files are: ";
$failures_found = false;
foreach ($results as $key => $r) {
$I->wantTo('Check helpfile '.$r['key'].'for broken images');
$I->amOnPage('/talkThrough.php?id='.$r['key']);
$allImagesFine = $I->checkAllImages();
if($allImagesFine != '1')
{
$fail = $r['key'].",";
$failures.= $fail;
$failures_found = true;
}
}
$I->seeBrokenImages($failures_found,$failures);

以下是我的 webhelper

<?php
namespace Codeception\Module;

// here you can define custom functions for WebGuy

class WebHelper extends \Codeception\Module
{
function checkAllImages()
{
$result = $this->getModule('Selenium2')->session->evaluateScript("return (function(){ return Array.prototype.slice.call(document.images).every(function (img) {return img.complete && img.naturalWidth > 0;}); })()");
return $result;
}
function getArrayFromDB($table, $column, $criteria = array())
{
$dbh = $this->getModule('Db');
$query = $dbh->driver->select($column, $table, $criteria);
$dbh->debugSection('Query', $query, json_encode($criteria));

$sth = $dbh->driver->getDbh()->prepare($query);
if (!$sth) \PHPUnit_Framework_Assert::fail("Query '$query' can't be executed.");

$sth->execute(array_values($criteria));
return $sth->fetchAll();
}
function seeBrokenImages($bool,$failArray)
{
$this->assertFalse($bool,$failArray);
}
}

感谢提交的答案

关于php - Codeception多项测试,1个脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19249703/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com