0

好的,所以我想做的是我有一堆只是测试的python程序(使用unittest库)。我想创建一个 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”部分。例子:

你好.py:

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 回答