私はちょうど私が私のdjangoプロジェクトに大きな変更を加えた後、たびにpython manage.py test
を実行しています。プロジェクトでファイルを変更して保存するときに、これらのテストを自動的に実行することは可能ですか?それ以前のバグを検出すると便利です(私はレールがrspecのようなものを持っていることを知っています)。私は鼻とdjango - 鼻を使用しています。前もって感謝します。私のプロジェクト(Django)に変更があったときにテストを自動的に実行する方法は?
答えて
Jenkinsのような継続的な統合サーバーが必要です。
ありがとう回答。私はセレンを使用するときにそれを確かにチェックします。今のところ、私はちょうどDjangoに同梱されている '偽の'サーバーを使って基本テストを行います。 – user1011444
JenkinsはSeleniumとは何の関係もありません。通常の単体テストで簡単に使用できます。 –
[django-jenkins'](https://github.com/kmmbvnr/django-jenkins)プロジェクトについてここで言及します。 –
Django SupervisorをDjangoの上に使用できます。これは、CIツールの使用を避けます(いずれの場合にも便利ですが、これは他の応答を無効にするものではありません)。
私はちょうどnose-watch
を試してみました、それは素晴らしい仕事を、Watchr
のようなものに使用さwatchrよ!プラグインをインストールし、--with-watch
オプションを指定してテストを実行してください。
更新:。:(ジャンゴ・鼻のmanage.pyヘルパーからテストを実行するとき、うまく動作していないよう
結局、私は少しを必要とするかもしれませんが、ジャンゴをサポートする、tdaemonを使用することにしました本格的なプロジェクトのためだけでなくいじる私はDjangoプロジェクトのためにそれを実行したか、ここで例えば
は、次のとおりです。
tdaemon -t django --custom-args=a_specific_app_to_test -d --ignore-dirs logs
--custom-args
がSにテストを集中することでした特定のアプリケーションと同じ(python manage.py test a_specific_app_to_test
引数はデバッグログを有効にするためのもので、実行をトリガーするファイル変更を出力します。
私のテストがログに書いた(それ自体が問題です)tdaemon
は無限ループに入ったので、--ignore-dirs
が必要でした。
私はJavaScript開発者ですので、JS開発者がNode.jsで構築したツールを使用して、私のプロジェクトで同じ目標を達成しました。非常にシンプルですが、nodeJSをインストールして動作させる必要があります。
私は私のプロジェクトのルートディレクトリにgruntfile.jsと呼ばれるファイル作成:基本的にはPYの拡張子を持っており、彼らが変更された場合、それはシェルコマンドを実行し、そのディレクトリ内のファイルを見ているそれは何やっている
//gruntfile.js
module.exports = function(grunt) {
grunt.initConfig({
watch: {
files: ['*.py'],
tasks: ['shell']
},
shell: {
test: {
command: 'python main_test.py'
}
}
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-shell');
grunt.registerTask('default', ['watch']);
};
をこの場合は私のPythonテストです(あなたはそれを変更したいかもしれません、私のテスト名はmain_test.pyでした)。このgruntスクリプトを実行するには、Node.jsをインストールする必要があります。その後、グローバルパスにnpmがあります。その後、いくつかのノードモジュールもインストールする必要があります。 grunt-cliを除くこれらのモジュールはすべてあなたの現在のフォルダに保存されるので、あなたがプロジェクトのルートにいるか、それともgruntfile.jsを置いたフォルダにいるのかを確認してからfallowingコマンドを実行してください。
npm install grunt-cli -g
npm install grunt
npm install grunt-contrib-watch
npm install grunt-shell
これは非常に小さいモジュールです。これですべての設定が完了しました。grunt
を実行するとpyファイルの監視が開始され、保存したらテストが実行されます。私はJavaScriptの開発者だと言いましたが、Gruntは他の言語であってもテストを実行する非常に簡単な方法を提供していると私は考えています。
私はgulpを使ってこれを行いました。
var shell = require('gulp-shell')
gulp.task('run-tests', shell.task([
'python3 manage.py test']))
gulp.task('watch', function(){
gulp.watch(['./your-project-name/**/*.html', './your-project-name/**/*.py'], ['run-tests']);
});
gulp.task('default',['run-tests','watch']);
をそして、それはいつでもテストを実行するすべての.pyまたは.htmlファイルに保存された変更があります
npm install gulp-shell --save-dev
そしてgulpfile.jsには:ゴクゴクシェルをインストール!
py.test answ ER:
pip install pytest-xdist
py.test -f # will watch all subfolders for changes, and rerun the tests
鼻はもはや維持されておらず、py.testはちょうどオハイオ州にあるので、はるかに優れており、とにかくもっとpythonicです。 –
私はdjango-noseとsnifferを設定することをお勧めします。それはセットアップが非常に簡単で、うまく機能します。 this scent.pyの行に沿った何かが私が必要とした唯一のカスタマイズでした。次に、sniffer -x myapp.tests
を実行するだけです。
ノーズには、テストを少しうまく使いこなせるいくつかの良いものが付属しています。
もう1つのJavascriptデベロッパー、nodemon
(https://github.com/remy/nodemon)がうまく機能することがわかりました。デフォルトでは*.js
のファイルを監視しますが、これは--ext
フラグで設定できます。これを使用するには、実行します。*.py
ファイルの変更は、それはあなたのコマンドを再実行しますたび
npm install -g nodemon
cd /your/project/dir/
nodemon --ext py --exec "python manage.py test"
、。それは新しいファイルを見つける。
私はこれが好きです。非常にきれいな。 – Kazanz
- 1. nodejs、ファイルが変更されたときに自動的にテストを実行
- 2. ビューファイルが変更されたときに自動テストを実行するように指示する
- 3. TStringGrid行のサイズを自動的に変更する方法
- 4. Visual Studioのクラス/ファイルテンプレート:プロジェクト/ソリューションごとにコンテンツを自動的に変更する方法はありますか?
- 5. 他のリンクテーブルの行が更新されたときにタイムスタンプを自動的に更新する方法
- 6. コンテンツウェブサイトが変更されたときに自動的にGoogleインデックスを更新する方法
- 7. JTreeオブジェクトのサイズを自動的に変更する方法は?
- 8. 実行するたびに自動的にプロジェクトをクリーンにする
- 9. .netプロジェクトを実行しているときにデフォルトブラウザを変更する方法
- 10. 私の端末ログイン時に自動的にプログラムを実行する方法
- 11. スケジューラベースでストアドプロシージャを自動的に実行する方法は?
- 12. .netでテストメソッドを自動的に実行する方法は?
- 13. PHPスクリプトを毎日自動的に実行する方法は?
- 14. ダウンロード後にファイルを自動的に実行する方法
- 15. 私が実行したときにgitのファイルの変更が
- 16. 環境変数が変更されたときにmakefileベースのcmakeプロジェクトにmake rebuild_cacheを自動的に実行させる
- 17. ダーツソースファイルが変更されたときにページを自動的に更新
- 18. UITableView/UIScrollView ContentSizeの変更を自動的に知る方法は?
- 19. iOS 6 - 向きが変わったときにカスタムコードを実行する方法
- 20. どのコントローラアクションが実行されたかを自動的にチェックする方法
- 21. iOSモノタッチGUIテストをコマンドラインから自動的に実行する
- 22. テスト環境で自動的にgemタスクを実行する
- 23. 実行時にDjangoで動的フィールドを処理する方法
- 24. リブートするたびにコマンドを自動的に実行する方法
- 25. 自動完了検索でユーザーがJson値を選択したときにアプリケーションが自動的に検索を実行できるようにする方法
- 26. WebStartプログラムのJavaキャッシュフォルダを自動的に変更する方法
- 27. IPアドレスの変更を自動的に通知する方法
- 28. 特定のディレクトリのファイルが実行されたときに環境変数を自動的に設定する方法はありますか?
- 29. プロジェクトをデバッグしようとすると、すべてのテストが自動的に実行されます。どのように私はこれを停止
- 30. ディレクトリの内容が変更されたときにbashスクリプトを自動的に呼び出す方法
[このプロジェクト](https://pypi.python.org/pypi/nosy)は、コミットではなくコードの変更でテストスイートを実行する場合に役立ちます。 – Matt
チップをありがとう、私は瞬間のために必要なもののように見えます。ちょっと鼻が簡単にジャンゴ鼻に追加できるかどうかを偶然に知っていますか(プラグインのように:[django-nose短い説明](https://github.com/jbalogh/django-nose#custom-plugins) ))? – user1011444
可能な複製[Python unittestsのための 'autotest'のようなものがありますか?](http://stackoverflow.com/questions/108892/is-there-something-like-autotest-for-python-unittests) – mlt