* .xlsxファイルの内容をセレンブラウザテストに変換する簡単なテストフレームワークを使用します。これにより、高いレベルの抽象化が可能になりますが、バイナリであるためgitで作業するのは面倒です。自動生成されたファイルを強制的にコミットし、その生成をトリガーする残りのコミットを強制する方法はありますか?
エクセルテストファイルの形式は次のとおりです。
Column A -> Action
Column B -> Identity (which text field, etc)
Column C onwards -> Value
私は成功したように、Excelは、基本的にテキストファイル(* .json)、リストのリストだけ(にファイルを変換し、次のコードを書きました注文は維持され、余分なキーワードは導入されません)。それを実行するには
#!/usr/bin/env python
"""
This script takes a GUI test in xlsx format and outputs a text interpretation.
"""
import argparse
import json
from openpyxl import load_workbook
from openpyxl.cell import get_column_letter
def main(xlsx_test):
ws = load_workbook(filename=xlsx_test, data_only=True).active
col_size = len(ws.column_dimensions)
row_size = len(ws.row_dimensions)
full_document = []
for col in xrange(2, col_size):
col_letter = get_column_letter(col + 1)
test_document = []
for row in xrange(row_size):
cell_reference = col_letter + str(row + 1)
cell_value = ws[cell_reference].value
if cell_value:
action = ws['A' + str(row + 1)].value
identity = ws['B' + str(row + 1)].value
if not action:
action = ""
if not identity:
identity = ""
test_item = [action, identity, cell_value]
test_document.append(test_item)
if test_document:
full_document.append(test_document)
with open(xlsx_test + '.json', 'w') as outfile:
json.dump(full_document, outfile, indent=4)
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Generate text verion of tests')
test_file = parser.add_argument(
'--input',
type=str,
nargs='?',
help='the file to generate text version of tests from'
)
args = parser.parse_args()
if args.input is None:
print '''No file selected'''
else:
main(args.input)
、私はbashスクリプトで次のコマンドを実行します:
python /path/to/this/script.py --input='/path/to/test.xlsx'
を私たちが得るだけのように、それはXLSXバイナリと一緒にコミットするために作成したテキストファイルを希望gitの変更履歴。
私は寄稿者のマシンごとに設定するのは嬉しいですが、余分に生成されたファイルをコミットに含めるかどうかを決めるのは苦労しています。
私は、拡張子が* .xlsxのコミットファイルのリストを繰り返し処理できるかどうかを調べる必要があります。上記のpythonスクリプトの引数をループで返します。