2

タイトルで提起された質問は XY-Problemの場合かもしれませんが、より簡潔な説明を見つけることができませんでした。それぞれで実行して多数の python スクリプトをテストし、execfile(filename)それらがアサーションをトリガーするかどうか、例外をスローするかどうかを確認したいと考えています。ここまでは順調ですが、それらのほとんどは、1 つのステートメントでコンフォメーションの GUI を開始します。たとえば、world.show('someString'). 自動テストのために、GUI を見たくありません。スクリプト自体を変更せずに GUI を抑制するにはどうすればよいですか?

編集: コメントについて:本質的に、私はただできる:

import unittest

class TestExamples(unittest.TestCase):

    def test_firstExample(self):
        execfile('example1.py')

    def test_secondExample(self):
        execfile('example2.py')

    # and many more

if __name__ == '__main__':
    unittest.main()

しかし、a) 2 つ以上あります。それぞれの例に対してテスト関数を記述したくありません。フォルダにいるだけでテストしてもらいたいです。これは unittests で解決できる可能性がありますdiscover。そして b) の場合と同じように、ほとんどの場合、計算を視覚化して終了しますmatplotlib.pyplot.show()。例自体を変更せずに、この視覚化を抑制したいと思います。

4

2 に答える 2

1

正しい方法は、使用している GUI をモックすることだと思います (質問の下のコメントに記載されているように)。

しかし、「簡単な方法」は、xvfb - 仮想フレームバッファ X サーバー (たとえば、Debian の場合はxfvbパッケージ) をインストールし、次のコマンドを使用して unittest スクリプトを実行することです。

xvfb-run python unittest.py
于 2013-04-08T22:08:52.670 に答える