0

わかりましたので、私がやろうとしているのは、(unittest ライブラリを使用して) 単なるテストである python プログラムがたくさんあることです。各pythonプログラムを連続して実行し、最後に一種のレポートを提供する(最良の状況になる)か、失敗した場合に実行を停止するpythonプログラムを作成したいと思います。

これに関する難しい部分は、各プログラムがユーザー入力を必要とすることです (はいの場合は単純な Y です)。各pythonプログラムを実行するにはどうすればよいですか(executefile("script.py")コマンドを実行しましたが、テストしていません)、ユーザーからの入力を挿入し(単純なY)、テストが失敗したときに停止する(簡単)か、できれば停止しますどれが失敗したかを識別し、失敗したものとすべての実行後に成功したものの結果を出力できます。

私はまだpythonを学んでいます(独学)ので、ごめんなさい!

4

2 に答える 2

1

unittestモジュールを使用してすべてのテストを実行しようとしましたか?

% python -m unittest -h
Usage: python -m unittest [options] [tests]

Options:
  -h, --help       Show this message
  -v, --verbose    Verbose output
  -q, --quiet      Minimal output
  -f, --failfast   Stop on first failure
  -c, --catch      Catch control-C and display results
  -b, --buffer     Buffer stdout and stderr during test runs

Examples:
  python -m unittest test_module               - run tests from test_module
  python -m unittest module.TestClass          - run tests from module.TestClass
  python -m unittest module.Class.test_method  - run specified test method

[tests] can be a list of any number of test modules, classes and test
methods.

Alternative Usage: python -m unittest discover [options]

Options:
  -v, --verbose    Verbose output
  -f, --failfast   Stop on first failure
  -c, --catch      Catch control-C and display results
  -b, --buffer     Buffer stdout and stderr during test runs
  -s directory     Directory to start discovery ('.' default)
  -p pattern       Pattern to match test files ('test*.py' default)
  -t directory     Top level directory of project (default to
                   start directory)

For test discovery all test modules must be importable from the top
level directory of the project.

ドキュメンテーション:

于 2012-08-13T15:05:44.337 に答える
0

スクリプト内の関数をテストし、人間の介入が必要な「raw_input」部分をバイパスできます。例:

こんにちは。

def main():
    print "hello world"

if __name__ == "__main__":
    test = True
    while test:
       test = raw_input() != 'Y'
    main()

test_hello.py:

import hello

if __name__ == "__main__":
    hello.main()

Python コードをテストするには、 Noseを単体テストの代替品と見なすことができます。

于 2012-08-13T15:31:58.833 に答える