私はpython2とpython3のバージョンで私のコードと互換性のある6つを提供したいと思います。私はオンラインで例を得ましたが、以下のコードから6つの例を得ることができるより多くのソースを取得できませんでした。テストケース用に次の行を作成しました。
class SampleTests(unittest.TestCase):
そしてメイン内部ではクラスをどのように呼び出したのか、メイン内部ではクラスをどのように呼び出しSampleTests
ましたか?unittest.main()
可能であれば、6つのモジュール移行のサンプル例をいくつか提供してください。
import six
from six.moves import reduce
import unittest
def multiply_values(val1, val2):
return val1*val2
def add_values(val1, val2):
return val1+val2
class SampleTests(unittest.TestCase):
def test_sets_equal(self):
setValue1 = reduce(multiply_values, [1,2])
setValue2 = reduce(add_values, [1,2])
six.assertCountEqual(self, [2,3], [setValue1,setValue2])
if __name__ == '__main__':
unittest.main()
答え1
あなたの例では、six
次の2つの目的に使用されます。
reduce
Python 3では削除されており、functools.reduce
soに置き換えてsix
便利な「別名」を提供するため、reduce
2と3の両方で呼び出すことができます。assertCountEqual
Python 3の単体テストの一部なので、six
ここではPython 2の独自の実装を提供します。
モジュールに関する最高のドキュメントsix
は、以下で確認できます。https://six.readthedocs.io/
注:Python 2は現在廃止されており、新しいプロジェクトには使用しないでください。six
両方のバージョンのPythonで動作するコードを書くのに役立ちますが、Python 2をサポートする妥当な理由がない場合は、より良いでしょう。 Python 3専用コードを記述します。2to3ツールPython 2コードをPython 3に変換するのに役立ちますか?
テストケース用のクラスを作成して次の行を作成した理由
これは実際には具体的な質問ではありませんsix
。これはunittest
モジュールがPython 2と3の両方で動作する方法です。https://docs.python.org/3/library/unittest.html詳細については。
TL; DRバージョン:unittest.main()
ファイル内のすべてのテストケースを自動的に実行し、テストケースはクラスtest_
で名前が始まる関数として定義されますunittest.TestCase
。