我有一个PHPUnit测试,它使用@dataProvider。数据提供程序检查文件系统中的某些文件
但是,我在不同的环境中使用这个测试,这意味着可能会发生文件不存在的情况。这意味着dataProvider找不到任何东西,测试也不会执行
这会导致测试运行以失败告终
问题:配置PHPUnit的一种方法是忽略具有不产生任何结果的提供程序的测试吗?虽然我不知道有任何PHPUnit选项(这并不意味着不存在),但您可以使用如下内容:
public function providerNewFileProvid
我使用的是laravel/phpunit测试,我想测试一个多维表单,下面的字段工作得很好,除了在测试时
<input type="number" class="form-control" name="practice_options[{{$diff}}][tries]">
<input type="number" class="form-control" name="practice_options[{{$diff}}][questions][easy]">
<
标签: Phpunit
symfony4php-7.2symfony-process
假设我有以下Symfony 4命令:
class Command1 extends Command {
protected static $defaultName = 'app:command1';
protected function execute(InputInterface $input, OutputInterface $output){
$process = new Process('bin/console list', getcwd());
我是PHPunit新手,在通过示例类学习PHPunit的同时,我发现了一个错误。错误在于,在setUp()中初始化的对象$this->sysman在执行第一次测试后变为空。下面是我正在尝试的代码。请告诉我这里出了什么错。谢谢
class PersonTest extends TestCase {
/** @var SysManService $sysman */
protected $sysman;
protected $personModel;
public function setUp(
我按照本页上的说明进行操作,但无法使单元测试正常工作
我最初的代码是这样的:
<?php
namespace ApplicationTest\Controller;
use Zend\Http\Request;
use Zend\Http\Response;
use Zend\Test\PHPUnit\Controller\AbstractHttpControllerTestCase;
class IndexControllerTest extends AbstractHttpCo
我正在重新配置我们的php单元测试设置,并且遇到了只在属于另一个组时才运行属于特定组的测试的需要。例如,我可能有这样的东西:
/**
* ...
* @group Alpha
* @group area1
*/
class TestAlpha extends PHPUnit_Framework_TestCase
{
public function testTest1() {
...
}
public function testTest1() {
我正在PhpStorm中使用Symfony3插件。我的PHP解释器是7.0.18。我在PhpStorm中配置了PHPUnit 6.3.0,方法是将.phar文件放在项目的根目录中
单元测试在IDE中像一个符咒一样工作,但是在服务器上执行任何操作(如bin/console server:start)都会触发以下消息:
PHP致命错误:在中找不到类“PHPUnit\Framework\TestCase”
/第13行的1tb/programming/PhpstormProjects/binary_se
我的应用程序是在Symfony4.4和PHP7.4上开发的
My composer.json:
{
"name": "saro0h/to-do-list",
"type": "project",
"license": "proprietary",
"require": {
"php": &q
标签: Phpunit
eclipse-pdtzend-debugger
我已经让Zend调试器与PDT2.1一起工作。在我正在处理的项目中,我使用PHPUnit进行单元测试,但是运行调试器不会捕获任何断点,直到我创建了测试类的一些实例,然后手动运行测试
这是一个问题,因为我希望代码库保持独立于单元测试或调试工具。是否可以在不更改代码的情况下调试我的单元测试
谢谢。切换到xdebug是一个选项吗?我使用xdebug毫无问题地逐步完成PHPUnit测试
谢谢你看这里。我开始参与一个项目,我需要为我编写的代码创建测试。我没有太多的考试经验
我写了这个文件:
测试/固定装置/visitante_boletin.yml
1:
id_localizacion: 60
email: emailconfirmado@server.net
estado_confirmacion: 1
fecha_creacion: 2013-02-03 12:01:49
fecha_confirmacion: 2013-02-03 1
我有一个简单的类,如:
class Subject {
/** @var ValueObject[] */
private $collection = [];
function addToCollection (array $whatver) {
if (array_key_exists($whatever, 'smth')) {
$collection[] = new ValueObject($whatever);
我已经安装了phpunit,但是在运行phpunit测试/TestCase/Model/Table/ArticlesTableTest时仍然有一个错误
我的测试模型和控制器是从蛋糕烘焙命令生成的
我遵循了他们文档中的指南
这是我从控制台得到的
There were 2 errors:
1) App\Test\TestCase\Model\Table\ArticlesTableTest::testInitialize
Cake\Datasource\Exception\MissingDatas
我有一个类,我试图测试它的一个方法,但是其中一个方法在同一个类上调用了一个静态方法。我想知道如何在不使用静态方法的情况下测试第一个方法,从而只测试第一个方法
下面是一个愚蠢的类作为一个例子
class MyEloquentModel extends Model
{
// Returns input concatenated with output of bar for that input
public function foo($input) {
$bar =
我正在尝试编写一个PHPUnit测试,它断言我正在测试的数组具有正确的密钥
$structure = ['title', 'message', 'action'];
$structure = array_flip($structure);
$result = array_diff_key($structure, $response);
$this->assertEquals($result, []);
此测试可以工作,但必须有一种更干净的方法来使用PHPUnit 4.8执行此操作。您应
我有最新的PhpStorm(2016.2)和PHPUnit phar(5.5.4)。出于某种原因,当我在PhpStorm中的项目中运行PHPUnit测试时,它将--teamcity添加到run命令中,导致失败:
Testing started at 12:52 PM ...
Unit test suite invoked with a path to a non-unit test: --teamcity
Process finished with exit code 1
我不知道这个--te
我试图理解在调用原始方法时,使用phpunit是否可以在方法上创建spy
我已经用java做了,但是我没有看到用phpunit做这件事的方法。我只发现如果我监视方法的调用,我还需要模拟它
示例代码:
$this->spy = $this->getMockBuilder('\ClassUnderTest')
->setMethods(['methodToSpy'])
->getMock(
当我在WAMP上的Windows中运行PHPUnit时,有时会得到如下奇怪的输出:
PHPUnit 3.7.22 by Sebastian Bergmann.
Configuration read from D:\MrDWorkspace\Zend\mrdelivery\phpunit.xml
←[41;37mF←[0m.... <-------- this is the weird output
塞巴斯蒂安·伯格曼的《PHPUnit 3.7.22》。
从D:\MrDWorkspace\
PHPUnit版本是phpunit4.3.5的代码。但是phpunit5.2是当前稳定的发行版系列
如何在Codeship上使用PHPUnit 5.2.5?只需在“安装命令”部分中的composer安装之前添加以下内容:
这对我有用
composer global remove "phpunit/phpunit" --update-with-dependencies
composer global require "phpunit/phpunit=5.*"
在使用debug进行单元测试时,每次我进入该方法(prepareStatusFilterQuery())时,都会收到警告,调试器没有进入该方法。警告:
在本地找不到文件“/3”。要修复此问题,请按设置服务器名称
环境变量PHP_IDE_CONFIG并重新启动调试会话
除此之外,调试器工作正常
当您尝试单步进入模拟对象的代码时,会发生这种情况
没有解决方案,因为模拟对象是在测试执行期间创建的类的实例
PHPUnit MockObjects用于了解您要求它模拟的类,然后它会提供一个新类(扩展模拟类)
我无法在PhpStorm 2016.3.2中自动完成PHPUnit断言方法
当我键入$this->ass时,没有自动完成。如果我只是键入ass我可以查看整个列表,例如,当我自动完成assertEquals时,我会得到self::assertEquals()
通过CTRL+Click,他将PHPUnit类与所有方法一起显示——因此PhpStorm会找到PHPUnit
我不太明白这里有什么问题。有人有什么想法吗?这是非常正确的:assertEquals是一种静态方法,不应该通过$this->方式调用
我找不到这方面的教程。在运行单元测试之前,必须加载Joomla框架。。。欢迎提供代码示例,谢谢 您可能正在寻找官方的-它包含示例测试和更多帮助您入门的内容。谢谢。我在文档中发现:为什么我不能使用“phpunittestname.php”来运行我的测试?测试工具必须做一些工作才能加载“Joomla!”框架并能够注入模拟类。从PHPUnit测试运行程序很难做到这一点,所以我们构建了自己的。此外,Joomla test runner具有特定的选项,可以方便地选择特定的测试。随着时间的推移,我们将向测试
现在已经两天了,我一直在努力让phpunit在我的OSX上工作。我正在MAMP安装中运行php
我已经通过PEAR安装了它,并且具有所有依赖项。
phpunit--version命令正在工作并显示:
$ phpunit --version
PHPUnit 3.6.10 by Sebastian Bergmann.
但当我从命令行运行测试时,它显示:
Warning: require_once(/Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit
标签: Phpunit
integration-testingcakephp-2.0
我是一名rails开发人员,我想用CakePHP2.0做一些capybara+(rspec或cucumber)风格的集成测试。我使用的是PHPUnit(cake 2.0的默认测试框架),但我不知道如何将它与Selenium和cake同时集成,以获得rails上的完整堆栈效果
因此,对于使用cake 2.0的php开发人员来说。。。你们是如何进行适当的集成测试的?我并不奇怪没有人回答这个问题-CakePHP中的测试人员社区似乎非常小。我从事过大量功能测试和单元测试的大型项目(目前大约有1500个测
我想在yii中使用phpunit
我按照说明从中安装它
当我这样做的时候
phpunit protected/tests/unit/
这个错误发生了
PHP Warning: require_once(PHPUnit/Extensions/SeleniumTestCase.php): failed to open stream: No such file or directory in /opt/lampp/htdocs/news/framework/test/CWebTestCase.ph
我是新来的。如何用竹子配置PHP单元?任何想法,我都无法找到一个合适的文档。
提前谢谢你如果你对你的问题做一点研究,然后在这里发布一个更精确的问题会更好
给你:
也
设置可执行路径时,必须将路径设置为:path/to/Executable(phpunit folder).cmd
不仅仅是:
path/to/executable(phpunit文件夹)感谢您的快速响应。我将在这里更具体地说明我的问题。
如果在phpunit.xml中配置了多个测试套件,如何从命令行运行多个测试套件,而不是所有测试套件
phpunit.xml
测试/单元
测试/集成
测试/验收
src
范例
phpunit——测试套件单元|集成但不接受因为phpunit 6.0,您可以指定一个逗号分隔的套件列表:
--testsuite suite1,suite2
版本的原始答案
我想知道如何正确地为这个方法编写单元测试。我使用PHPUnit编写单元测试 我同意@Matteo的观点,在这种情况下,你应该看看“功能”测试@德拉戈斯特有一个很好的观点,你没有提供足够的信息让我们帮助你
请看我写的关于使用貂皮进行功能测试的这篇博文:
您的功能测试可以简单到:
public function dashboard()
{
return $this->render('dashboard.html.twig');
}
$this->visit('/somePage')
我已经配置了一个项目来完成代码覆盖。我真的不明白为什么有些类在覆盖率表中有n/a
有人能给我解释一下原因吗?图片中显示的两个文件没有任何可执行代码行,或者这些方法也可以用注释标记:@codeCoverageIgnore,该注释将显示“n/a”和“0/0”作为所涵盖行的列。“函数和方法”列组可能仍然显示方法的覆盖范围。其他注释可能会导致问题吗?还有@apidocs和@security注释。
我正在执行一项最基本的任务,如下所示:
<autoloader autoloaderpath="vendor/autoload.php">
<target name="asdf">
<echo msg="test"/>
<phpunit configuration="app/phpunit.xml"
haltonerror="true"
haltonfa
标签: Phpunit
laravel-5.4laravel-testing
我正在用phpunit测试我的laravel应用程序
当我运行vendor/bin/phpunit时,我得到如下错误错误:调用未定义的方法ExampleTest::assertStatus()
下面是我试图执行的代码
$response = $this->json('POST', '/users', ['customer_name' => 'Ratke-Harris']);
$response
->assertStatus(200)
周末过后,我又犯了以下错误:
Fatal error: Uncaught Error: Class 'PHPUnit\Runner\TestSuiteSorter' not found in /Users/piersb/Development/Den/dezeenjobs/_project/vendor/phpunit/phpunit/src/TextUI/TestRunner.php on line 1143
Error: Class 'PHPUnit\Runner\TestSuiteSor
我的SampleTest.php位于单元目录下,属于测试目录;我的模型类User.php位于Models目录下,属于App目录
当我运行脚本时,它会显示错误并显示:
找不到类App\Models\User
User.php中的名称空间是:App\Models,而SampleTest.php中的类声明是:
$user= new \App\Models\User;
您是否配置了自动加载?PHP本身并不能神奇地找到其他文件。请参阅:如果不自动加载,您必须要求所需的源文件。是否配置了自动加载?PHP本
设置函数多次调用。我只需要执行一次。我是phpunit的新手。有人能给出解决方案吗?我需要在这个文件中执行4个测试,并且我需要使用相同的变量名
class XSCBookModelTest extends TestCase
{
public $categoryID;
public $categoryName = "Motivations";
public $parentID = 0;
protected function setUp()
{
我希望PHPUnit在遇到任何PHP错误、警告或异常时失败
我看到了相反的例子,其中
/**
* @expectedException PHPUnit_Framework_Error_Warning
*/
在预期出现错误时使用。但是,我希望使用各种代码路径,并保证不会抛出错误、警告或异常。任何抛出未捕获的异常或引发警告或错误的测试都会由PHPUnit自动标记为E(对于错误),而无需您的干预。当你想把这些错误算作正确的行为时,你只需要采取像@expectedException这样的措施。对我
我正在使用phpunit3.4.14,并试图添加一个侦听器
我写了一个简单的例子:
class My_Test_Listener implements PHPUnit_Framework_TestListener
{
public function addError(PHPUnit_Framework_Test $test, Exception $e, $time)
{
...
我在phpunit.xml文件中声明了它:
<phpunit bootstrap="./boo
我想用PHPUnit单独运行一些单元测试,但是我有一些与测试分离的类,因为我使用的是symfony框架,我将测试和类分组在不同的文件夹中
我希望以如下方式单独运行测试:
php phpunit.phar MyTest.php
问题是测试文件使用了来自控制器的类,而phpunit似乎无法导入测试所需的类
多亏了phpunit.xml,一起运行所有测试不是问题,但是当我想单独运行它们时,这是一个问题
如何修复此问题?您必须指出phpunit配置文件的位置(例如,它必须知道自动加载器)。如果您有默认
我已经通过Pear安装了PHPUnit
当我尝试通过PHPUnit进行测试时,即使给出了测试文件路径,它也会显示错误:
系统找不到指定的路径
我在以下方面尝试了示例代码:
不确定调用了什么源文件,但没有为该类编写任何测试。您使用了生成器,它创建了@asserts。现在,您需要生成测试类来使用它们。然后需要运行以生成实际测试
在您的代码中,您有样例@assert注释,用于生成简单的测试用例。因此,您需要生成测试用例
phpunit-skelgen --test Calculator
或用于名称
我有一个包,其中包含一个数据库/migrations目录,其中包含许多迁移。我有一个tests目录,其中包含一个测试和一个断言
我希望使用对迁移进行单元测试
发生的问题
我运行PHP单元,但测试失败:
$ phpunit
PHPUnit 4.6.6 by Sebastian Bergmann and contributors.
Configuration read from /var/www/.../phpunit.xml
F
Time: 594 ms, Memory: 15.25Mb
通常,我们可以在测试用例之前和/或之后定义回调。是否使用数据提供程序对测试套件进行回调
(即,在一组测试用例之前或之后运行?否,没有这样的回调。还要注意,所有数据提供程序都是在执行第一个测试之前执行的
我想测试我的代码和覆盖率。我已经安装了Xdebug扩展,当我使用php-v命令进行验证时,所有这些都很好:
PHP 7.4.12 (cli) (built: Oct 27 2020 17:18:47) ( ZTS Visual C++ 2017 x64 )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Xdebug v3.0.0RC1, Copyright (c)
响应是JSON格式的,我使用的是定制的MVC框架,我不确定请求和响应过程是如何生成的。服务方法是使用以下语法创建的
公共函数getSessionMethod()
{
//数据自动编码为JSON
返回数组('hello','world');
}
来自JavaScript的请求如下所示/svc/api/getSessions。
我最初的想法是简单地使用streams方法,这种测试形式有最佳实践吗
公共函数testcangetsessionsforagvenid()
{
$params=http\u
我的模型(codeigniter框架)中有一个函数,它在cookie中设置两个值
我需要为相同的代码编写单元测试,所以在本例中,我需要调用两个assertEqual()函数,以确保两个cookie都已设置
有人想过在同一个测试用例中调用两个断言函数吗
// For example
public function testMyTest()
{
$foo = 'test';
$this->assertTrue(is_string($foo));
$this->as
这让我抓狂——每次我运行PHPUnit,不管文件中有多少测试,它都会在套件中运行三次。如果我有testOne和testTwo,它将如下运行:
testOne
testTwo
testOne
testTwo
testOne
testTwo
testOne
testOne
testOne
如果我只有一个测试,它将如下运行:
testOne
testTwo
testOne
testTwo
testOne
testTwo
testOne
testOne
testOne
我已经浏览了所有的main
当使用composer(在PHPStorm中)安装phpunit 4.0时,我得到
/phpunit
/sebastian
/symfony
有人知道为什么我会得到第二个两个,以及是否有任何必要
谢谢您可以在PHPUnit的网站上看到,这些依赖关系是必要的。在Composer出现之前,他们只通过PEAR发布软件,您需要自己安装所有依赖项。最后,一切都没有改变
如果您担心为每个需要PHPUnit的PHP项目反复安装所有这些依赖项,您可以在系统上全局安装它
将composer global re
谁能告诉我为什么这一行在最后一次休息之后;保持未覆盖状态,因此该方法的覆盖率为0%
private function isADateParameter($fieldName, $fieldValue){
if(!is_array($fieldValue)){
$this->addPayloadError('filter',320, $fieldName. 'is a date field and needs an array filter like {"gt":"2
我正在从phpunit4.5迁移过来,在那里测试可以正常运行并通过
在phpunit4.5中,我们使用了PHPUnit\u框架\u MockObject\u生成器,这显然在phpunit6中不存在
我们是这样使用它的:
public static function getMock()
{
$generator = new PHPUnit_Framework_MockObject_Generator();
$mock = $generator->generate(
我正在尝试使用codeception和guzzle对用php编写的API进行phpunit测试,所有测试都在运行,但codecoverage始终显示为0/0。
我在下面分享我的测试功能
public function testInputget()
{
$c = $this->id;
// create our http client (Guzzle)
$client = new Client();
$url = 'http://localhost/unit_test/testApi/u
我正在尝试为Drupal8创建和运行PHPUnit测试。详情如下:
我的顶级目录,composer.json所在的位置
Dockerfile bootstrap.php composer.lock phpunit-examples phpunit.xml.org web
Jenkinsfile checkstyle.xml config phpuni
我的配置使用PHPUnit在PhpStorm中成功地测试了本地主机API。我也可以在断点上停止,但只能在我的TestCase类中停止
我需要在测试逻辑内部设置的断点上停止,但它不会停止
测试命令:
/usr/bin/php -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9000 -dxdebug.remote_host=127.0.0.1 /foo/vendors/composer/phpunit/p
我似乎面临着一个普遍的问题,即指令驱动的突变在单元测试时无法正常工作。使用GraphQL,一切正常,用户模型自动检测。但是,如果单元测试相同的功能,它就会失败
所有配置值都已正确设置(正如我从未失败的常规请求中看到的):
lighthouse配置值也设置为上面的名称空间
例如,这个变异会触发UserPolicy类,然后自动调用User类的create方法:
type Mutation @protect(guards: ["api"]) {
"Create user"
createUser
上一页 1 2 ...
8 9 10 11 12 13 14 ...
下一页 最后一页 共 16 页