如何从多个测试用例中执行测试用例的选择

发布于 2024-11-18 04:17:30 字数 156 浏览 1 评论 0原文

我想使用 php 单元轻松执行我的多个测试用例类中选定的几个测试用例。

由于我的 1-2 个测试用例因一堆测试用例而失败,并且还发现很难再次执行这两个测试套件的整个测试套件,因此是否有任何方法无需向其他测试用例添加注释或将这两个方法复制到不同的套件中。

提前感谢大家

I want to execute few selected test cases from my class of multiple test cases using php unit with ease.

As my 1-2 test cases are failing from bunch of test cases and also finding difficult to execute whole test suite again for these two, is there any method without adding comment to the others or copying these two methods in different suite.

Thanks to all in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

厌倦 2024-11-25 04:17:30

您可以使用 - 从套件中运行单个测试用例或单个测试类-filter cli 选项

--filter <pattern>        Filter which tests to run.

--filter 运行名称与给定模式匹配的测试。该模式可以是单个测试的名称,也可以是匹配多个测试名称的正则表达式。

示例

BlaTest.php 中的测试用例 testSametestElse

// BlaTest.php
<?php

class BlaTest extends PHPUnit_Framework_TestCase {

    public function testSame() { $this->assertSame(1,1); }
    public function testElse() { $this->assertSame(1,1); }

}

采用以下示例测试类 BlaTest,其中包含文件BlaTest 中的测试用例

此过滤器与测试类名称匹配。

$ phpunit --filter BlaTest

BlaTest 中运行单个测试用例

此过滤器与测试用例名称匹配,然后指示跨文件 BlaTest.php 运行此过滤器。

$ phpunit --filter testSame BlaTest.php

You may run single test cases or single test classes from your suites using the --filter cli option:

--filter <pattern>        Filter which tests to run.

--filter runs tests whose name matches the given pattern. The pattern can be either the name of a single test or a regular expression that matches multiple test names.

Example

Take the following example test class BlaTest containing test cases testSame and testElse in file BlaTest.php:

// BlaTest.php
<?php

class BlaTest extends PHPUnit_Framework_TestCase {

    public function testSame() { $this->assertSame(1,1); }
    public function testElse() { $this->assertSame(1,1); }

}

Running all test cases within BlaTest

This filter matches the test class name.

$ phpunit --filter BlaTest

Running a single test case within BlaTest

This filter matches the test case name, then indicates to run this filter across file BlaTest.php.

$ phpunit --filter testSame BlaTest.php
风月客 2024-11-25 04:17:30

--filter 选项接受正则表达式作为其值(我使用的是 phpunit 3.7)。这允许您指定将通过使用断言排除的测试,如下所示:
--filter='/::((?!test(Else|Same))\w+)/'

--filter option accepts regular expression as its value (I'm using phpunit 3.7). This lets you specify the tests which will be excluded by using assertion like following:
--filter='/::((?!test(Else|Same))\w+)/'

A君 2024-11-25 04:17:30

如果您更喜欢按代码进行过滤,您可以通过使用 $this->getName() 检查将要运行的测试来标记要在 setUp() 方法 [1] 中跳过的测试。这样这些测试就会显示为被跳过。

示例:

class FooTest extends PHPUnit_Framework_TestCase {

  public function setUp() {
    if( 'testIwantToSkip' === $this->getName() ) {
      $this->markTestSkipped( 'Test skipped!' );
    }
  }

  ...
}

[1] http://www.phpunit.de/manual/current /en/fixtures.html

If you prefer to filter code-wise you could mark the test to be skipped within the setUp()-method [1] by checking which test is about to be run using $this->getName(). That way these tests will show up as being skipped.

An example:

class FooTest extends PHPUnit_Framework_TestCase {

  public function setUp() {
    if( 'testIwantToSkip' === $this->getName() ) {
      $this->markTestSkipped( 'Test skipped!' );
    }
  }

  ...
}

[1] http://www.phpunit.de/manual/current/en/fixtures.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文