定制 davispeixoto/laravel-test-generator 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

davispeixoto/laravel-test-generator

Composer 安装命令:

composer require davispeixoto/laravel-test-generator

包简介

Laravel 4 tests generator

README 文档

README

Build Status

This Laravel 4 package provides a powerful test generator to speed up your development process.

It's based on the facility PHPUnit Skeleton Generator provides and Jeffrey Way's Laravel 4 generators.

The first doesn't work 100% with all Laravel 4 application classes. Usually you need to add some dependency in the class to make it work, even if your project solves it all with the Composer PSR-0 compliant autoloader.

The second, generates a really tiny test class. It doesn't maps all class public methods and let everything in place.

This generator loads the target with and use the PHP Reflection features for reverse engineer all public methods, and provide an enhanced skeleton, including calls for data providers.

Installation

Begin by installing this package through Composer. Edit your project's composer.json file to require davispeixoto/testingtool.

"require": {
	"laravel/framework": "4.*",
	"davispeixoto/laravel-test-generator": "1.0.*"
},
"minimum-stability" : "stable"

Next, update Composer from the Terminal:

composer update

Once this operation completes, the final step is to add the service provider. Open app/config/app.php, and add a new item to the providers array.

'Davispeixoto\TestGenerator\TestGeneratorServiceProvider'

That's it! You're all set to go. Run the artisan command from the Terminal to see the new tests:generate commands.

php artisan

Usage

Use tests:generate when you need to create a new PHPUnit test class. Here's an example:

php artisan controller:make UserController
php artisan tests:generate UserController

This will generate a resource controller and a test class app/tests/UserControllerTest.php as follows:

<?php
class UserControllerTest extends TestCase {
	
	/**
	 * Tests UserController::index
	 */
	public function testindex()
	{
		//@TODO implement testindex body
	}
	
	/**
	 * Tests UserController::create
	 */
	public function testcreate()
	{
		//@TODO implement testcreate body
	}
	
	/**
	 * Tests UserController::store
	 */
	public function teststore()
	{
		//@TODO implement teststore body
	}
	
	/**
	 * Tests UserController::show
	 *
	 * @dataProvider providershow
	 */
	public function testshow($id)
	{
		//@TODO implement testshow body
	}
	
	/**
	 * Tests UserController::edit
	 *
	 * @dataProvider provideredit
	 */
	public function testedit($id)
	{
		//@TODO implement testedit body
	}
	
	/**
	 * Tests UserController::update
	 *
	 * @dataProvider providerupdate
	 */
	public function testupdate($id)
	{
		//@TODO implement testupdate body
	}
	
	/**
	 * Tests UserController::destroy
	 *
	 * @dataProvider providerdestroy
	 */
	public function testdestroy($id)
	{
		//@TODO implement testdestroy body
	}
	
	
	/**
	 * Data provider function for UserController::show
	 */
	public function providershow()
	{
		return $this->dataProvider('UserController.show.csv');
	}
	
	/**
	 * Data provider function for UserController::edit
	 */
	public function provideredit()
	{
		return $this->dataProvider('UserController.edit.csv');
	}
	
	/**
	 * Data provider function for UserController::update
	 */
	public function providerupdate()
	{
		return $this->dataProvider('UserController.update.csv');
	}
	
	/**
	 * Data provider function for UserController::destroy
	 */
	public function providerdestroy()
	{
		return $this->dataProvider('UserController.destroy.csv');
	}
	
}
?>

For full usage, I recommend first reading the article Testing Like a Boss in Laravel. There are some performance tuning to be made in the Laravel 4 core TestCase class.

Along with them, to add the data providers functionality. Add to your Laravel composer.json:

"require": {
	"laravel/framework": "4.1.*",
	"davispeixoto/testingtool": "dev-master",
	"keboola/csv" : "dev-master"
},
"minimum-stability" : "dev"

Next, update Composer from the Terminal:

composer update

And finally, let the TestCase class like this:

<?php

class TestCase extends Illuminate\Foundation\Testing\TestCase {
	
	/**
	 * Default preparation for each test
	 */
	public function setUp()
	{
		parent::setUp();
		$this->prepareForTests();
	}

	/**
	 * Creates the application.
	 *
	 * @return \Symfony\Component\HttpKernel\HttpKernelInterface
	 */
	public function createApplication()
	{
		$unitTesting = true;
		$testEnvironment = 'testing';
		return require __DIR__.'/../../bootstrap/start.php';
	}
	
	/**
	 * Migrates the database.
	 * This will cause the tests to run quickly.
	 */
	private function prepareForTests()
	{
		Artisan::call('migrate');
	}
	
	/**
	 * dataProviders Factory
	 * dataProvider Short Description
	 *
	 * @param string $fileName
	 * @return \Keboola\Csv\CsvFile
	 */
	public function dataProvider($fileName) {
		return new Keboola\Csv\CsvFile(__DIR__.'/data/'.$fileName);
	}
}
?>

With these little changes, you can really speed up your testing process for your Laravel application.

License

This Test Generator is open-sourced software licensed under the MIT license

Versioning

This project follows the Semantic Versioning

统计信息

  • 总下载量: 1.2k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 6
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 2
  • Forks: 3
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2014-03-15

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固