gulp를 사용하여 phpunit을 자동화 할 때 빠졌습니다.
3854 단어 PHPUnitPHPgulp-phpunitgulp
개요
vim 사용하면서도 php의 개발을 효율화하고 싶다!
코드 수정하고 phpunit를 움직이는 것이 다르다고 생각하고 gulp를 사용하여 자동화해 보았습니다.
요구사항
개발하면서 동적으로 여러 번 테스트가 실행되는 환경을 만들고 싶다.
이번 주저한 점
왠지 일단 phpunit가 실행되면, 2회째 이후 phpunit가 실행되지 않는다.
gulp-plumber를 사용하거나 하는 기사는 보이고 시험하거나는 해 보았습니다만,
잘 작동하지 않습니다. . .
확실히 더 좋은 해결책이 있을지도 모릅니다만, 같은 문제로 망설이는 분이 있으면 생각하고,
투고하겠습니다.
환경
php -version
PHP 7.1.23 (cli) (built: Nov 7 2018 18:20:35) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
node --version
v11.12.0
준비
필요한 module 넣기
npm i --save gulp gulp-notify gulp-phpunit
gulpfile.js 작성
'use strict';
var gulp = require('gulp');
var notify = require('gulp-notify');
var phpunit = require('gulp-phpunit');
gulp.task("test",function(){
gulp.src('tests/*.php')
.pipe(phpunit('vendor/bin/phpunit'))
.on('error', notify.onError({
title: "Gulp PHP Unit",
message: "Error(s) occurred during testing..."
}))
.pipe(notify({
title: "Gulp PHP Unit",
message: 'Successfully ran test!'
}));
});
gulp.task('watch',function(){
gulp.watch(['src/**/*.php', 'tests/**/*.php'], gulp.task('test'));
});
실행
gulp watch
결과
화질 거칠고 죄송합니다. . . (테스트 코드를 다시 쓸 때 phpunit이 작동하는지 확인합니다)
![](https://s1.md5.ltd/image/78eb4aeff66442edbf408a8328537d6e.gif)
문제점
한 번 테스트를 실행하면 거기에서 멈 춥니 다. . .
이것이라고 하고 싶은 것과는 다르다. . .
하고 싶은 것은 개발하면서 몇 번이라도 phpunit을 실행해주는 느낌.
해결책
chokidar 사용
입니다.
chokidar의 install
npm i --save chokidar
gulpfile.js 수정
'use strict';
var gulp = require('gulp');
var chokidar = require('chokidar');
var notify = require('gulp-notify');
var phpunit = require('gulp-phpunit');
var watcher = chokidar.watch(['src/**/*.php', 'tests/*.php']);
watcher.on('change', function(){
gulp.src('tests/*.php')
.pipe(phpunit('vendor/bin/phpunit'))
.on('error', notify.onError({
title: "Gulp PHP Unit",
message: "Error(s) occurred during testing..."
}))
.pipe(notify({
title: "Gulp PHP Unit",
message: 'Successfully ran test!'
}));
});
실행
node gulpfile.js
결과
2번째 이후의 수정에서도 제대로 phpunit가 실행되게 되었다!
![](https://s1.md5.ltd/image/e3b5e43fa856dca44546af5035efe44c.gif)
github
아래의 리포지토리에 소스를 올리고 있습니다.
phpunit-gulp
php 코드와 테스트 코드는 샘플로 아래 코드를 사용합니다.
phpunit
참고 자료
phper도 gulp 사용하자!
gulp
chokidar
Reference
이 문제에 관하여(gulp를 사용하여 phpunit을 자동화 할 때 빠졌습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sk8metal/items/6e50f89073f4c96993f5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
개발하면서 동적으로 여러 번 테스트가 실행되는 환경을 만들고 싶다.
이번 주저한 점
왠지 일단 phpunit가 실행되면, 2회째 이후 phpunit가 실행되지 않는다.
gulp-plumber를 사용하거나 하는 기사는 보이고 시험하거나는 해 보았습니다만,
잘 작동하지 않습니다. . .
확실히 더 좋은 해결책이 있을지도 모릅니다만, 같은 문제로 망설이는 분이 있으면 생각하고,
투고하겠습니다.
환경
php -version
PHP 7.1.23 (cli) (built: Nov 7 2018 18:20:35) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
node --version
v11.12.0
준비
필요한 module 넣기
npm i --save gulp gulp-notify gulp-phpunit
gulpfile.js 작성
'use strict';
var gulp = require('gulp');
var notify = require('gulp-notify');
var phpunit = require('gulp-phpunit');
gulp.task("test",function(){
gulp.src('tests/*.php')
.pipe(phpunit('vendor/bin/phpunit'))
.on('error', notify.onError({
title: "Gulp PHP Unit",
message: "Error(s) occurred during testing..."
}))
.pipe(notify({
title: "Gulp PHP Unit",
message: 'Successfully ran test!'
}));
});
gulp.task('watch',function(){
gulp.watch(['src/**/*.php', 'tests/**/*.php'], gulp.task('test'));
});
실행
gulp watch
결과
화질 거칠고 죄송합니다. . . (테스트 코드를 다시 쓸 때 phpunit이 작동하는지 확인합니다)
![](https://s1.md5.ltd/image/78eb4aeff66442edbf408a8328537d6e.gif)
문제점
한 번 테스트를 실행하면 거기에서 멈 춥니 다. . .
이것이라고 하고 싶은 것과는 다르다. . .
하고 싶은 것은 개발하면서 몇 번이라도 phpunit을 실행해주는 느낌.
해결책
chokidar 사용
입니다.
chokidar의 install
npm i --save chokidar
gulpfile.js 수정
'use strict';
var gulp = require('gulp');
var chokidar = require('chokidar');
var notify = require('gulp-notify');
var phpunit = require('gulp-phpunit');
var watcher = chokidar.watch(['src/**/*.php', 'tests/*.php']);
watcher.on('change', function(){
gulp.src('tests/*.php')
.pipe(phpunit('vendor/bin/phpunit'))
.on('error', notify.onError({
title: "Gulp PHP Unit",
message: "Error(s) occurred during testing..."
}))
.pipe(notify({
title: "Gulp PHP Unit",
message: 'Successfully ran test!'
}));
});
실행
node gulpfile.js
결과
2번째 이후의 수정에서도 제대로 phpunit가 실행되게 되었다!
![](https://s1.md5.ltd/image/e3b5e43fa856dca44546af5035efe44c.gif)
github
아래의 리포지토리에 소스를 올리고 있습니다.
phpunit-gulp
php 코드와 테스트 코드는 샘플로 아래 코드를 사용합니다.
phpunit
참고 자료
phper도 gulp 사용하자!
gulp
chokidar
Reference
이 문제에 관하여(gulp를 사용하여 phpunit을 자동화 할 때 빠졌습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sk8metal/items/6e50f89073f4c96993f5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
php -version
PHP 7.1.23 (cli) (built: Nov 7 2018 18:20:35) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
node --version
v11.12.0
준비
필요한 module 넣기
npm i --save gulp gulp-notify gulp-phpunit
gulpfile.js 작성
'use strict';
var gulp = require('gulp');
var notify = require('gulp-notify');
var phpunit = require('gulp-phpunit');
gulp.task("test",function(){
gulp.src('tests/*.php')
.pipe(phpunit('vendor/bin/phpunit'))
.on('error', notify.onError({
title: "Gulp PHP Unit",
message: "Error(s) occurred during testing..."
}))
.pipe(notify({
title: "Gulp PHP Unit",
message: 'Successfully ran test!'
}));
});
gulp.task('watch',function(){
gulp.watch(['src/**/*.php', 'tests/**/*.php'], gulp.task('test'));
});
실행
gulp watch
결과
화질 거칠고 죄송합니다. . . (테스트 코드를 다시 쓸 때 phpunit이 작동하는지 확인합니다)
![](https://s1.md5.ltd/image/78eb4aeff66442edbf408a8328537d6e.gif)
문제점
한 번 테스트를 실행하면 거기에서 멈 춥니 다. . .
이것이라고 하고 싶은 것과는 다르다. . .
하고 싶은 것은 개발하면서 몇 번이라도 phpunit을 실행해주는 느낌.
해결책
chokidar 사용
입니다.
chokidar의 install
npm i --save chokidar
gulpfile.js 수정
'use strict';
var gulp = require('gulp');
var chokidar = require('chokidar');
var notify = require('gulp-notify');
var phpunit = require('gulp-phpunit');
var watcher = chokidar.watch(['src/**/*.php', 'tests/*.php']);
watcher.on('change', function(){
gulp.src('tests/*.php')
.pipe(phpunit('vendor/bin/phpunit'))
.on('error', notify.onError({
title: "Gulp PHP Unit",
message: "Error(s) occurred during testing..."
}))
.pipe(notify({
title: "Gulp PHP Unit",
message: 'Successfully ran test!'
}));
});
실행
node gulpfile.js
결과
2번째 이후의 수정에서도 제대로 phpunit가 실행되게 되었다!
![](https://s1.md5.ltd/image/e3b5e43fa856dca44546af5035efe44c.gif)
github
아래의 리포지토리에 소스를 올리고 있습니다.
phpunit-gulp
php 코드와 테스트 코드는 샘플로 아래 코드를 사용합니다.
phpunit
참고 자료
phper도 gulp 사용하자!
gulp
chokidar
Reference
이 문제에 관하여(gulp를 사용하여 phpunit을 자동화 할 때 빠졌습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sk8metal/items/6e50f89073f4c96993f5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
npm i --save chokidar
'use strict';
var gulp = require('gulp');
var chokidar = require('chokidar');
var notify = require('gulp-notify');
var phpunit = require('gulp-phpunit');
var watcher = chokidar.watch(['src/**/*.php', 'tests/*.php']);
watcher.on('change', function(){
gulp.src('tests/*.php')
.pipe(phpunit('vendor/bin/phpunit'))
.on('error', notify.onError({
title: "Gulp PHP Unit",
message: "Error(s) occurred during testing..."
}))
.pipe(notify({
title: "Gulp PHP Unit",
message: 'Successfully ran test!'
}));
});
node gulpfile.js
아래의 리포지토리에 소스를 올리고 있습니다.
phpunit-gulp
php 코드와 테스트 코드는 샘플로 아래 코드를 사용합니다.
phpunit
참고 자료
phper도 gulp 사용하자!
gulp
chokidar
Reference
이 문제에 관하여(gulp를 사용하여 phpunit을 자동화 할 때 빠졌습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sk8metal/items/6e50f89073f4c96993f5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(gulp를 사용하여 phpunit을 자동화 할 때 빠졌습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sk8metal/items/6e50f89073f4c96993f5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)