我使用php artisan test来执行我的测试,但是现在我有太多的测试,我希望能够选择运行哪一个。我熟悉PHPUnit中的测试组,只是不知道如何将其应用于Laravel,因为PHPUnit.xml是在这里动态生成的
谢谢您可以将PHPUnit测试与分组。我想您也可以参考artisan的这一组:
您可以将@group放在测试类上,也可以只放在测试方法上。您可以在一个类/方法上放置多个组。这样您就可以组织它们。如果不修改几个Laravel的核心文件,就不可能做到这一点。
我非常需要这个功能,所
我有一个套件,它调用多个套件和许多函数来记录、报告和执行,如果我尝试相同的“组或过滤器”模式,它将执行所有测试用例,而不执行选定的单个测试用例
编辑:我正在使用一个数组套件,如下所示
$suite->addTestSuite('adminSuite');
$suite->addTestSuite('staffSuite');
$suite->addTestSuite('merchantSuite');
// Run the test
PHPUnit_TextUI_TestRu
我可能有点糊涂,但我不知道如何获得一点关于测试失败原因的信息
我做这个测试是为了检查我们没有任何新的没有测试的方法
//TEST ALL METHODS TESTED
public function testAllMethodsTested()
{
$temp = $this->class_namespace.substr(__CLASS__, 0, -5);
$class_methods = get_class_methods($temp);
$test_meth
我已经用PHPUnit编写了测试,我想向服务器发送信息,以获得json响应
我试图用client->request方法作为第五个参数的第三个发送'accept'=>'application/json'头,但它不起作用
我的代码:
class PostControllerTest extends WebTestCase
{
protected $client;
public function setUp()
{
self::bootKernel();
CakePHP版本:3.5.17
PHPUnit:6.5.8
示例代码:
用户控制器添加操作。(编码哪些错误。)
客户端id功能。
public function add()
{
$user = $this->Users->newEntity();
if ($this->request->is('post')) {
// Initialise the client id.
if ($this->clientId(
运行Laravel 5.1
我有两个testcase类,每个类本身运行良好,但当我一起运行它们时,例如>phpunit没有过滤器,它将挂起最终testcase类的第一个测试。(我实现了自己的侦听器,这样我就可以看到哪些套件正在运行
它没有中断或只是停止,它只是位于命令行,我必须按ctrl C停止批处理文件。如果我删除第三个套件中的第一个测试用例,它将挂起到下一个测试
我输入了xml文件,并使用--stderr运行它,但没有效果。Follow up。我创建了一个新的测试类,在问题类之前运行,但这没
我已经使用phpunit一段时间了,从3.5.8开始,随后升级到3.5.10,现在是3.5.11
今天我想使用以下命令升级到3.5.13:
> pear config-set temp_dir "C:\tmp"
> pear config-set download_dir "C:\tmp"
pear频道更新pear.phpunit.de
梨升级phpunit/phpunit
不幸的是,pear只升级了自己,但是phpunit的升级失败了,如下所示。是的,我处于管理员模式,因此授权不
除其他外,我正在尝试测试我的类的构造函数。它只需要一个必须是字符串的参数。所以我写了这个测试:
class categoryTest extends PHPUnit_Framework_TestCase {
public function testConstructor() {
$this->setExpectedException('Exception', 'Unknown data type.');
$objCategory = new category(1);
我是phpunit的新手,刚刚安装了它。为了在全球范围内访问它,我将它从MAMP PHP5.5.3 bin移动到
/usr/local/bin
那么现在,当我打字的时候
which phpunit
我明白了
但是当我打字的时候
phpunit --version
我什么也没得到,终端只是返回一个新的空行。
从我遵循的教程中,我应该得到如下内容:
PHPUnit 3.6.12 by Sebastian Bergmann.
我错过什么了吗?谢谢尝试在没有参数的情况下运行phpunit。如果您
我在Symfony2.3项目中进行表单测试,结果发现没有选项。
我不明白为什么会这样
AdminMessageBundle\Tests\Form\ServiceAlertTypeTest::testSubmitValidData
with data set #0
(array(1, 'magic', '#2A8BCC', 'www', '23/12/14', 'text', 'all'))
Symfony\Component\OptionsResolver\Exception\Invali
我正在使用phpunit。但是你知道它的困难,不可能模拟私有函数,访问私有变量,等等。有没有一个工具可以帮助我?将私有函数转换为公共函数,将静态方法转换为可模仿方法,等等,这些都不能直接回答您的问题,但使phpunit更容易的最佳“工具”是良好的代码设计。如果你不确定一个给定问题的好设计是什么,那么你已经在使用另一个可用的好工具——这个网站
您在问题中提到的导致困难的事情通常是困难的,因为代码的设计存在问题。如果很难测试,那么重构、使用和维护就很难了。测试在编码过程的早期向您展示了这一点,并允许
我有两个测试的特点,每个测试都有一个单独的数据提供者:
trait StringTest
{
/**
* @dataProvider stringProvider
*/
public function testString($expression, $string)
{
//echo $name;
$this->assertInternalType('string', $string, "Not a string.");
$thi
标签: Phpunit
selenium-chromedriverlaravel-dusk
我已经为Laravel安装了dusk,从一开始所有的测试都失败了。他们没有查看我想要的页面,而是返回404错误
为了找出测试试图进入的URL,而不是我想要的URL,我设置了一个自定义404页面,并在其中输入以下代码:
$\u服务器['REQUEST\u URI']
现在,测试返回它试图获取的URL,我发现它在URL的末尾添加了一个“/会话”,例如,如果我尝试检查:
'http://localhost/,DesiredCapabilities::chrome()
测试返回
在此服务器上找不到请求
标签: Phpunit
graphql-subscriptionslaravel-lighthouse
我有一个laravel包,它使用GraphQL(Lighthouse)来扩展我的基础项目。在添加我的包和执行查询等操作时,一切正常
但是,由于我试图在测试文件中发出postGraphQL请求,其中给定的查询或变异使用@broadcast指令,因此请求失败,原因是:
Add the SubscriptionServiceProvider to your config/app.php to enable subscriptions.
启动测试环境时,SubscriptionServiceProvi
以前,当使用create方法测试工厂类时,我可以使用setMethods为一个尚不存在的类生成一个模拟,如下所示:
$factoryStub = $this->getMockBuilder($baseClass . 'Factory')
->disableOriginalConstructor()
->setMethods(['create'])
->getMock();
现在我看到
我有两个测试用例,一个返回一个值,下一个应该使用返回值
class GenerateAckFeedTest extends PHPUnit_Framework_TestCase
{
public function testThankyouAckFeedErrors()
{
$ackFeed = array(1,2,3);
return $ackFeed;
}
/***
* @depends testCitiThanky
我向bundle添加了一个简单的测试
按照手册中的建议,我尝试让PHPUnit加载以下配置:
phpunit -c /app
phpunit.xml如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!-- http://www.phpunit.de/manual/current/en/appendixes.configuration.html -->
<phpunit
backupGlobals
我想在我的windows服务器上安装PHPUnit 3.7。我按照各种说明操作,最终得到了phpunit3.4.1。当我尝试再次安装时,请使用:
pear update channels
pear install --alldeps phpunit/PHPUnit
我得到:
phpunit/PHPUnit is already installed and is the same as the released version 3.4.15
install failed
我知道3.4.15不是
我有几个方法采用相同的参数(user\u id)。在这些方法中,我测试传递的参数是否为有效的八位数整数。
是否有可能将(?)测试分组以测试传递参数的有效性
Class Hello{
public function test($user_id=0){
if (!preg_match('/^[0-9]{8}$/', $user_id)) return false;
do stuff...
}
public function make($user_id=0){
if (!preg_match('/
有没有什么方法可以完全测试这个方法,因为我并没有直接将模型传递给它,而是希望我的经理为我创建它
public function giveAchievement(User $user, $achievementType)
{
$a2p = new Achievement2User();
$a2p->setUser($user);
$a2p->setAchievement($this->em->getReference(AchievementManag
我有很多测试需要创建一个特定的模拟对象。下面是我所做的:
namespace AppBundle\Tests\Services\Terminal;
use Mockery\Adapter\Phpunit\MockeryTestCase;
use AppBundle\Entity\Tunnel;
class TunnelBasedTestCase extends MockeryTestCase
{
/**
*
* @var Tunnel
*/
pr
我在CakePHP上的单元测试仍然在运行,但是代码覆盖率已经消失了。我得到的只是“没有要生成覆盖范围的文件”
我们的应用程序目前正在CakePHP 2.10.15上运行。我已经安装了PHPUnit 5.7。运行PHP7。我使用web runner进行测试和覆盖。我让XDebug 2.7.0beta1运行
我们最近的升级是否破坏了Cake和PHPUnit之间的某种连接?在应用程序文件夹中创建一个文件PHPUnit.xml:
<?xml version="1.0" encoding="
ssI使用Symfony的内核测试用例编写一个单元测试,并且必须测试一个功能,这只会在一天中的某个特定时间提前或延迟进行
所以当我让我的测试在中午运行时,当然什么也没发生。我怎样才能伪造我的系统时间,假装它有一个不同的时间,我的测试用例被触发
我试过使用Symfony的ClockMock类,但不起作用。
这是我的测试代码:
use Symfony\Bridge\PhpUnit\ClockMock;
use \DateTime;
/**
* testUserAchievedEarlyBird
如中所述,您可以实现PHPUnit\Framework\Test来编写自定义测试
听起来不错,但是如何将这些测试作为测试套件的一部分来启动呢
给定以下测试目录:
+tests/
|- NormalTestExtendingTestCaseTest.php
|- CustomTestImplementingTest.php
phpunit.xml
和我的phpunit.xml文件:
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSc
我正在做我的第一个项目,在这个项目中,我使用PHPUnit进行单元测试。事情一直进展顺利;但是,通过最近的测试,我开始获得以下输出:
................................................................. 65 / 76 ( 85%)
...........
Time: 1 second, Memory: 30.50Mb
OK (76 tests, 404 assertions)
我找不到任何关于“65/76(85%)是什么意思的
首先,我想说——我是PHP单元测试(phpunit)的新手。
在我的新项目(slim3框架)中,我想测试我的控制器,例如LoginController
我的想法是(单元测试方法)
创建登录控制器的实例
模拟控制器(DI)中的某些服务
执行响应请求的方法(在我的控制器方法中\uu invoke)
我的问题是关于\u invoke方法的参数。
在Slim3中,请求的可调用方法有两个第一个参数:
RequestInterface$request和ResponseInterface$response
我得到:
“ErrorException:使用未定义的常量SYSTEM\u COUNTRY\u ID-假定为'SYSTEM\u COUNTRY\u ID'”
PHPUnit测试中的此错误如何解决。我已经在“phpunit.xml”中定义了它
我试图断言一个数组至少包含一个与预期正则表达式匹配的元素,并且我正在尽可能多地照本宣科,尽可能少地重新发明轮子
理想情况下,我希望->断言($actualray,$someConstraintObject),其中$someConstraintObject是一个执行正确操作的PHPUnit\Framework\Constraint\Constraint实例™, 并且只由PHPUnit附带的约束组成,无需编写新的约束类
我考虑了一件不可能起作用的事情:由正则表达式约束构成的逻辑约束。为什么它不能工作
标签: Phpunit
functional-testinggoutte
我正在使用(Symfony功能测试组件的独立包)测试Wordpress主题:
public function testDocumentHasBasicNodes(){
$this->assertEquals(1, $this->crawler->filter('title')->count(),
'document shall have a TITLE node');
$this->assertEquals(1, $this
我有以下测试文件,PHPUnit网站上的一个示例
<?php
require_once 'PHPUnit/Autoload.php';
class StackTest extends PHPUnit_Framework_TestCase
{
public function testPushAndPop()
{
$stack = array();
$this->assertEquals(0, count($stack));
我已经按照这里描述的说明进行了操作
一切都很顺利,但当我执行以下命令时
phpunit --bootstrap src/autoload.php tests/MoneyTest
它抛出以下错误
PHPUnit 4.0.4 by Sebastian Bergmann.
PHP Fatal error: Class 'SebastianBergmann\Money\Money' not found in /Users/myname/Sites/lab/unittesting/tests/Mon
我有一个为WP、Drupal、SMF、WP等制作的插件,现在我想为它们编写单元测试。那么,有没有办法为它们编写通用的单元测试代码,或者仅仅是基本代码,我不想分别为每个插件编写单元测试。如果不知道插件的实际功能,答案可能有点元
你应使用:
创建一个包含用于测试功能的所有方法原型的插件(即,如果您的插件格式化一篇文章,您将在该接口中有一个名为format\u post())的方法)
对于每个CRM,创建一个将实现该接口的类
在执行测试的文件中,为每个CRM测试类(实现定义format\u post
在类“Test\GroupControllerTest”中未找到任何测试
phar:///usr/local/bin/phpunit/phpunit/TextUI/Command.php:152
phar:///usr/local/bin/phpunit/phpunit/TextUI/Command.php:104
失败!
测试:2,断言:2,失败:1
正如您所看到的,PHPunit的输出表明类中没有测试,但我不理解为什么它在底层测试中说:2,断言:2,失败:1
有人能帮我理解吗?在执行的其他文
我尝试获取php单元测试文件夹的结果,但不使用CLI,而是使用php文件
我想在一个变量中得到答案(好的,通过了4个测试),这样我就可以决定脚本是否应该执行,最好的方法是什么?我不想使用批处理文件,我想在库本身内部强制执行测试
我从
需要一次“PHPUnit/Autoload.php”
当我把测试包括在内时,我不知道如何开始思考
有什么建议吗?您可以检查PHPUnits退出代码,0表示测试没有失败
要从php文件运行测试,然后检查退出代码,请尝试以下操作:
//Composer installs
试图为我的Phalcon测试设置夹具,但失败了。
你能找出我的实现出了什么问题吗
用法
法尔康7.2
Docker版本18.09.0-ce-beta1
docker compose 1.22.0版
pH6.5.8
dbunit 3.0.3
现状
使用“getConnection”函数连接到数据库成功
创建数据集(YAML类型)
创建getDataSet函数,但无法设置fixture和cleanup
unitTestCase.php
回应
注
当我在getConnection中使用一个真正
在PHPUnit引导文件中启用php vcr会中断类PHPUnit\Framework\ExceptionWrapper的自动加载
我试图将PHPUnit降级到7.x,但没有成功。从引导中移除VCR解决了ExceptionWrapper问题
这是我的引导文件的开头
require_once __DIR__ . '/../vendor/autoload.php';
use VCR\VCR;
VCR::turnOn();
VCR::configure()->setMode('new_epi
运行PHPUnit时,如果没有错误,它将在aprox中运行。6秒,但如果出现错误,则可能需要3或4分钟…仅报告错误信息
我在Windows中运行PHP版本5.5.3和PHPUnit版本3.7.28
测试非常简单,即使是最简单的断言失败也会让测试报告花费很长时间
class MyTest extends PHPUnit_Framework_TestCase
{
public function someTest() {
$this->assertEquals(true,
我正在对一个遗留php项目进行单元测试。它的db connect是全局设置的,因此可以在整个项目中使用。对于phpunit测试,我引导创建db connect的文件,但是我的测试文件,即db connect的资源设置为int0,我不知道为什么
引导的xml配置:
我从中找到了可能重复的原因,这是因为phpunit的备份是通过序列化变量实现的,但资源类型不能序列化!
<?xml version="1.0" encoding="UTF-8" ?>
<phpunit bootstra
我在安装PHPUnit时遇到问题,使用pear通道发现时无法打开连接(网站pear.PHPUnit.de正常,我仍然正常使用通道信息或清除缓存)。我尝试了很多方法,但都失败了。
我希望得到你的帮助,
非常感谢大家,,
命令行:pear channel discover pear.phpunit.de
错误:…连接到'pear.phpunit.de:80'失败:连接尝试失败…因为连接的主机未能响应您不应该再为phpunit使用pear分发
现在安装它的唯一有效日期是。以下是关于如何做到这一
以下是:
phpunit“C:\xampp\htdocs\LaravelTest\tests\ExampleTest.php”--coverage xml“C:\Users\James\Documents\Test log”
没有为我创建xml文件
我也尝试过:
phpunit“C:\xampp\htdocs\LaravelTest\tests\ExampleTest.php”--coverage xml“C:\Users\James\Documents\Test Logs\Test.xml”
我仍然对PHPUnit中的setup()有点困惑
它是否在每个测试用例之前和之后运行
对于intance,我想在每次测试之前清理我的文章表,但我想保留我已经注入表中的测试数据。因为我只想在下次测试前清洗它
我的测试
namespace Test\Foo\Article;
use Test\SuiteTest;
use Foo\Article;
class ArticleTest extends SuiteTest
{
protected static $Article;
/
--coverage html与--coverage clover有何不同
以下是对我的项目调用phpunit--coverage clover./clover.xml后的输出
<metrics files="39" loc="3550" ncloc="2528"
classes="38" methods="138" coveredmethods="66"
conditionals="0" coveredconditionals="0" statem
我们有一个遗留的代码库,我们刚刚开始添加单元测试覆盖率。这意味着,虽然我们有大量的代码库(150万行,至少600个类,加上支持,模板文件),但在整个应用程序中我们只有一到两个单元测试。(悲伤但真实)
我的问题是,arcanist单元测试(使用arc单元或部分arc diff)运行需要超过四分钟。另一方面,PHPUnit只需要几秒钟
单元测试应该很短,特别是如果它只是在最近的差异上。我如何加快这些测试,或者,如果没有,看看arcanist正在尝试做什么(这样我就可以优化自己)
我最好的猜测是,这与
在phpunit5中,我们能够设置预期的类名,然后检查它的错误消息
$this->setExpectedException('Cake\Network\Exception\NotFoundException');
$this->assertEquals('Not Found', $this->_exception->getMessage());
如何在PhpUnit 6中执行相同的操作
$this->expectException(NotFoundExceptio
我有一个PHPUnit-Mink测试,它确保一些HTTP重定向已经就位
这被缩减了,但测试本质上看起来像是,testRedirect()由@dataProvider提供:
class Testbase extends BrowserTestCase {
public static $browsers = [
[
'driver' => 'goutte',
],
];
public function testRedirect($from, $to)
我和phpunit有些问题。当我执行测试时,phpunit不会给我以下警告:
1) 警告
在类“Illumb\Foundation\Testing\TestCase”中未找到任何测试
2) 警告
在类“TestCase”中未找到任何测试
但是我想忽略这些文件,这样phpunit就不会尝试从它们运行测试
如何做到这一点?希望您现在已经找到了答案,但如果您还没有找到答案,这可能会有所帮助:
嗯-确保文件名和类名都匹配。对于
例如,没有文件名为BarTest.php的FooTest类
另外,您是否确定
PHPUnit不允许我根据传入的参数指定返回值。以下给出了一个500错误:
//模拟会话值
$container->get('session')
->method('get')
->with(SESSION_FILTER_MONTH)
->willReturn('2017-05');
$container->get('session')
->method('get')
->with(SESSION_FILTER_F
我想创建一个Mock,其方法应该为特定参数返回true,为任何其他参数返回false
我可以通过以下方式实现这一目标:
$this->myMock = Mockery::mock(MyClass::class);
$this->myMock->shouldReceive('myMethod')->with('my-argument')->andReturn(true);
$this->myMock->shouldReceive('myMethod')-&
标签: Phpunit
mutation-testinginfection
我第一次成功地进行了变异测试。我通常的测试框架是,但在撰写本文时,它与突变测试不兼容(尽管我相信这方面的工作正在进行,而且已经不远了)。我正在使用和,这两个似乎都不容易解决如何使用
我的测试套件产生了十个变种。九人死亡,一人逃脱。然而,我不知道需要改进代码或测试的哪一部分来杀死最终的变种
您如何获得关于什么代码允许突变体逃逸的信息?我在中找不到的内容中找到了:结果保存在infection.log中
日志文件如下所示:
Escaped mutants:
================
1)
我使用的是带有php:7.4-fpm和pecl-stomp-2.0.2扩展的停靠环境。我已经从php:5.6-fpm迁移了我的代码。我正在为下面的“StompTest.php”文件运行phpunit,但得到了下面的错误/警告。我也降级到了stomp-2.0.0和stomp-2.0.1,但运气不好
StompTest.php
<?php
class StompTest extends \PHPUnit\Framework\TestCase
{
private $stomp;
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 16 页