2012-05-13 6 views
3

私たちのプロジェクトでは、単体テストの一般的な作業の一部を支援するフレームワークをPHPUnitフレームワークの上に作成しました。カスタムフレームワークを使用してディレクトリからPHPUnitテストを実行する

このカスタムフレームワークは、PHPUnit_Framework_TestCaseをから継承し、その後、MySetupを()を修正し、我々のコードのための便利な機能の束を追加します。

ここでテストコードでは、OurUnitTestFrameworkを拡張してテストを書きます。今、私たちはジェンキンスを介してすべてのユニットテストを実行していたし、それはまだ罰金を実行しているが、今、我々は、それが失敗したフォルダ内のテストを実行しようとすると、ティル

<?php 
require_once ("OurUnitTestFramework"); 
class DatabaseConnectionTest extends OurUnitTestFramework { 
    parent::setUp (..) { ... } 
    public function testSomeThing() { ... } 
    public function testSomeOtherThing() { ... } 

} 
?> 

。フォルダ/サブフォルダ内のすべてのテストが正常に実行されたが、1つの障害が発生している:

[[email protected] model]$ phpunit database 
PHPUnit 3.5.14 by Sebastian Bergmann. 

F........ 

Time: 0 seconds, Memory: 10.50Mb 

There was 1 failure: 

1) Warning 
No tests found in class "OurUnitTestFramework". 


FAILURES! 
Tests: 9, Assertions: 30, Failures: 1. 

が、私は、ディレクトリのサブディレクトリを持っており、すべてのテストは、そのフォルダから渡されたデータベースとそのサブフォルダを持っているが、私はから失敗を取得しますOurUnitTestFrameworkはこのカスタムフレームワークでテストが見つかりません。だから私はphpunitがテストファイルにインクルード/拡張されたファイルに対して単体テストを実行している理由を理解できません。

私はこの1つのエラーを無視することを選ぶことができますが、このままにしてもいいか、それを成立させるために設定する必要があるかどうかを知りたかったのです。

おかげ

+0

他のテストや 'OurUnitTestFramework'を使わずに直接PHPUnitを使って、そのファイル内のテストを単独で実行することはできますか?これにより、問題を特定するのに役立ちます。 – vascowhite

+0

私は孤立してテストを実行できますが、すべてのテストには 'OurUnitTestFramework'が含まれています。 PHPUnitを直接使用することはできません。テストを再度書き直す必要があるからです。他の方法はありますか?ありがとう! – Sumitk

答えて

4

メイク 'OurUnitTestFramework' 抽象クラス。

+1

これはどのように役立つでしょうか?本物の質問、皮肉でも失礼でもなく、単に好奇心が強い。 – vascowhite

+0

それは働いた!なぜこのように動作するのか説明できますか?私も好奇心が強いです。どうもありがとう!! – Sumitk

+1

PHPUnitのすべてのunittestingクラスに少なくとも1つのテストが必要です。これは単にエラーです。これは実際のユニットテストではなく、単に抽象クラスにするだけでなく、PHPUnitをunittestingクラスとして無視します。 – Evert

関連する問題