Я что-то использую вот так:
Код: Выделить всё
import pytest
import xlwings as xw
EXCEL_VISIBLE = True # toggle headless excel
EXCEL_KEEPALIVE = True # toggle automatic closing of excel application
XL_TESTFILE = "myfile.xlsm"
@pytest.fixture(scope="module")
def file(request):
# copy to temp directory, set up paths etc.
with xw.App(visible=EXCEL_VISIBLE) as xl_app:
xl_app.books.open(XL_TESTFILE)
xl_app.activate(steal_focus=True)
xl_app.macro('LoadData')()
yield xl_app
# FIXME: do something to optionally keep xl_app open, otherwise quit and unlink the test file
if EXCEL_KEEPALIVE:
pass
else:
pass
def simple_test(file):
assert xl_app.books[XL_TESTFILE].sheets["mysheet"].range("A1").value == "expected"
Меня не волнует, приведет ли оставление приложения открытым к очистке вручную — это просто то, что облегчает мне написание тестов.
Подробнее здесь: https://stackoverflow.com/questions/788 ... est-script