Ich bin ein wenig neu bei Python, und aus irgendeinem Grund kann ich mich nicht um etwas kümmern.Importieren und Ausführen einer Datei
in der Befehlszeile ich diesen
python3 myfile.py
laufen und es funktioniert, am Ende der Datei ist das, was meine Klasse läuft, wird das Bit, das die Klasse läuft unter zeigen (ich habe enthalten nur ein bisschen den Abschnitt, der Rest
if __name__ == "__main__":
dir = os.getcwd()
reportoutputpath="reports"
reportfilename=casedetails['hcname'] + ".html"
......
nennt Was ich tun möchte, ist die vollständige Datei von meinem Code ausführen, habe ich versucht, diese
pathforidefiles="/home/ubuntu/idefiles"
sys.path.append(pathforidefiles)
module = __import__("clean-Fern_Britton_Testcase_01")
Dies scheint die Datei zu lesen (Ich habe eine Druckzeile ganz oben und das scheint zu funktionieren, aber nichts wird tatsächlich ausgeführt. Ich bin mir sicher, dass ich etwas Grundlegendes über die Funktionsweise von Python verpasse, aber ich bin etwas verloren.
Edit Ich denke, ich könnte über die falsche Art und Weise gehen, und denke, dass meine Frage sein könnte. Wie bewege ich mich, was im Hauptabschnitt der Datei ist für mich in die Datei importiert, die den Import von
die Datei importiert werden soll, zu tun ist, wie dies
class Examplecase01(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(30)
self.base_url = "http://example.com/"
self.verificationErrors = []
self.accept_next_alert = True
def test_fern_britton_testcase01(self):
driver = self.driver
....
if __name__ == "__main__":
dir = os.getcwd()
reportoutputpath="reports"
reportfilename=casedetails['hcname'] + ".html"
outfile = open(dir + "/" + reportoutputpath + "/" + reportfilename, "w")
loader = unittest.TestLoader()
suite = unittest.TestSuite((
loader.loadTestsFromTestCase(FernBrittonTestcase01)))
runner = HTMLTestRunner(stream=outfile,
verbosity=2,
title=casedetails['hcname'],
description=casedetails['hcdescription'])
t = unittest.main(exit=False)
print (t.result)
dann in der Datei, die zu tun ist der einführende
mymodule=importlib.import_module('cleantest')
#code as above
t = unittest.mymodule(exit=False) #to replace t = unittest.main(exit=False)
der Fehler ich erhalte, ist: Modul ‚Unittest‘ kein Attribut ‚mymodule‘ So
hat, was ich meinen Code tun müssen, um (das in Haupt war) zu Arbeit meiner Meinung nach, die den Import macht?
Wenn ich Sie richtig verstehe, Sie wollen Der 'if __name__ == '__main __'' Teil wird ausgeführt, wenn Sie die Datei importieren, richtig? – Leva7
Das ist es. Die Datei scheint auf der Kommandozeile einwandfrei zu funktionieren. – mozman2
Mögliches Duplikat von [Was bedeutet \ 'if \ _ \ _ name \ _ \ _ ==" \ _ \ _ main \ _ \ _ ": \'?] (Http://stackoverflow.com/questions/419163/what-does-if-name-main-do) – Leva7