我在多個檔案中有一些代碼,如下所示:
一個主模塊:
import TC1
import TC2
一些測驗用例模塊,如下所示:
testcase = "Test Case 1"
successmessage = "Specific Success Message for Test Case 1"
errormessage = "Specific Error Message for Test Case 1"
# Run test
if pageLoaded == pageExpected:
testresult = 0
logresults()
else:
testresult = 1
logresults()
還有一個日志結果模塊:
def logresults():
print("Test Results for", testcase,)
if testresult == 0
print(testcase, "Passed with", successmessage)
else:
print(testcase, "Failed with", errormessage)
如何將每個測驗用例中的變數傳遞給logresults,并讓它在運行時列印每個測驗用例的結果?
uj5u.com熱心網友回復:
我發現您的代碼有兩個問題。
首先,如果您匯入一個具有適用于全域變數的函式的模塊,它將搜索共享一個命名空間的全域變數。例如,如果您有一個帶有函式 logresults 的 logresultsmodule 并匯入它,它只會在看起來像這樣的變數上運行:logresultsmodule.variable
要解決此問題,您必須將函式的簽名更改為
def logresults(testresult, testcase, successmessage, errormessage): ...
并傳遞相應的變數。
第二個問題是您在條件中呼叫 logresults,其中 testresult 變數可能尚未定義。
首先評估條件,然后呼叫 logresults。
from logresultsmodule import logresults
{code that defines testcase, successmessage, errormessage}
if pageLoaded == pageExpected:
testresult = 0
else:
testresult = 1
logresults(testresult, testcase, successmessage, errormessage)
因此,現在每當您匯入測驗用例時,代碼都會自動運行并列印結果訊息。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/516087.html
