Skip to content

Sett/testpoint

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Test Point

Gain points for tests

[Ru]

Игрофикация юнит тестирования кода на PHP (дописать до нужного языка - раз плюнуть).

Смысл очень прост:

Если все кейсы теста проходят успешно - разработчик получает по 1 очку за каждый кейс. Если какой-то кейс валится - разработчик теряет по 1 очку за каждый отвалившийся кейс (при этом за удачные кейсы, разработчик в этом случае, ничего не получает).

На этапе самотестирования результаты скалдываются в базу MySQL.

[Как это использовать]

Очень просто, формиурете список тестов и скармливаете его классу:

<?php

$testPoint = new TestPoint('developer name', ['path/to/test/1', 'path/to/test/2']);

// Или указываем директорию, где лежат тесты (поддиректории поддерживаются):
// $testPoint = new TestPoint('sett', 'path/to/tests');

Как видно, использовать можно по крону или любому таймеру, какой у вас используется, например, при CI.

На текущем этапе сразу готового класса TestPoint у вас нет - его нужно собрать. Для этого используется Менеджер сборки, подробнее о нём вы можете прочитать здесь.

[Man]

Самый простой способ попробовать TestPoint:

  • Клонируем этот репозиторий.
  • Запускаем man.php: "php man.php". Он лежит в папке example.

Если у вас установлен PHPUnit и есть рнр >= 5.4, то после запуска у вас:

  • В консоли отобразится ход "игры":
/var/www/testpoint$ php example/man.php 

<?php

require_once 'modules/TestPoint.php';
require_once 'modules/Config/Log.php';
require_once 'modules/Config/Mode.php';
require_once 'modules/Config/PHPUnit.php';
require_once 'modules/Config/Store.php';
require_once 'modules/Config/System.php';
require_once 'modules/Config/Talk.php';
require_once 'modules/Config/Test.php';
require_once 'modules/Config/Event.php';
require_once 'modules/Config.php';
require_once 'modules/File.php';
require_once 'modules/lib/Mysql.php';
require_once 'modules/Log/Db/Mysql.php';
require_once 'modules/Test.php';
require_once 'modules/ArrayLib.php';
require_once 'modules/PHPUnit/Analyse.php';
require_once 'modules/PHPUnit.php';
require_once 'modules/Talk/Console.php';
require_once 'modules/Talk.php';
require_once 'modules/Event.php';

class TestManager
{
        use TestPoint, 
                Config_Log, 
                Config_Mode, 
                Config_PHPUnit, 
                Config_Store, 
                Config_System, 
                Config_Talk, 
                Config_Test, 
                Config_Event, 
                Config, 
                File, 
                Log_Db_Mysql, 
                Test, 
                ArrayLib, 
                PHPUnit_Analyse, 
                PHPUnit, 
                Talk_Console, 
                Talk, 
                Event;
}

  =====| System information: TestPoint v.0.0.start.5 | 14:52:49 |=====


  =====| Constructing TestPoint for "sett" |=====


    ===| Applying config sections |===

  - talk
  - log
  - event
  - system
  - store
  - test
  - phpunit

 Tests for playing: 

 in /var/www/testPoint/testpoint/tests/

  =====| Start test(s) |=====

 Run /var/www/testPoint/testpoint/tests/

    ===| PHPUnit |===

 Flags:
        --coverage-html pu-coverage-php.html
        --testdox-html pu-doc.html
        --process-isolation
        --bootstrap path/to/bootstrap

    ===| Results |===

 Gained 36 point(s)
 Now 36 points
 Save results into test-tp: test_results

 Rised event "testing output"

  =====| Finish in 12 second(s) |=====

  • Должен появиться лог log.txt:
[<текущая дата>]
PHPUnit 3.6.10 by Sebastian Bergmann.

.

Time: 0 seconds, Memory: 2.25Mb

OK (3 tests, 0 assertions)


About

Gain points for tests

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages