私はPythonで書かれたテストファイルを持っています:
テスト ファイルは、できる限り軽量で書きやすくなければなりません。
次のようなスクリプトを作成したい:
- 入力引数を取ります
- これらの引数で initialize.py ファイルを開始します
- initialize.py によって作成された変数を使用してテスト ファイルを開始します。
私はいくつかの方法を考えました:
- 2 つのファイルをインポートします。インポートでは、メイン スクリプトで戻り引数を使用できますが、入力引数を指定できないため、機能しません。
- 両方のファイルを関数に変換します。initialize.py の問題ではありませんが、前述したように、テスト ファイルをできるだけ簡単かつ軽量に保ちたいので、それを避けることができればより良いでしょう。
- 完全な解決策は、コードを初期化から単純に「コピー」して、テスト ファイルの先頭に配置することです (またはその逆)。両方のコードを含む一時ファイルを作成することはできますが、あまりクリーンではないと思います。
要約すると、同じ 25 行で始まる 100 個のファイルがあり、それらの 25 行を 1 つのファイルに入れ、毎回インポートしたいのと同じです。
物事を見る別の方法は、3 つのファイルです。
#File1.py
var1 = sys.argv(1)
#File2.py
var2 = var1+"second"
#File3.py
var3 = var1+var2+"third"
print var3
./File1.py を最初に開始し、「最初の 2 番目の 3 番目」を取得したい
私は成功します
#! /usr/bin/python
import sys
import subprocess
source_content = "#! /usr/bin/python\n"+"import sys\n"
sourcefile = "file2.py"
txt_file = open(sourcefile)
source_content += txt_file.read()
sourcefile = "file3.py"
txt_file = open(sourcefile)
source_content += txt_file.read()
destinationfile = "Copyfile2.py"
target = open (destinationfile, 'w')
target.write(source_content)
target.close()
chmodFile = "chmod 777 "+destinationfile
chmod = subprocess.Popen(chmodFile, shell=True)
chmod.wait()
arguments = str("./"+destinationfile+" ")
arguments += " ".join(map(str,sys.argv[1:len(sys.argv)]))
startTest = subprocess.Popen(arguments, shell=True)
startTest.wait()
しかし、「#! /usr/bin/python」を test2 から削除し、それらの同じファイルで var1 をテストして名前を sys.arg[1] に変更する必要がありました。そして、私はそれが良い解決策だとは思わない...