Я немного новичок в Python, и по какой-то причине я не могу окунуться в что-то.Импорт и запуск файла
Из командной строки я запускаю этот
Python3 myfile.py
И это работает, в нижней части файла это, который работает мой класс, бит, который запускает класс является показать ниже (я только включил немного раздела, который вызывает остальные
if __name__ == "__main__":
dir = os.getcwd()
reportoutputpath="reports"
reportfilename=casedetails['hcname'] + ".html"
......
То, что я хочу сделать, это запустить полный файл из моего кода, я попробовал этот
pathforidefiles="/home/ubuntu/idefiles"
sys.path.append(pathforidefiles)
module = __import__("clean-Fern_Britton_Testcase_01")
Кажется, что прочитал файл (у меня есть строка печати справа вверху и, похоже, работает, но ничего не выполняется. Я уверен, что мне не хватает чего-то фундаментального в том, как работает Python, но я немного потерян.
Редактировать Я думаю, что я мог бы ошибиться в этом, и думаю, мой вопрос может быть. Как перенести то, что в основной части файла мне импортирован в файл, который делает импортирующей
Файл импортируемого как этот
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)
Затем в файле, который делает импортер
mymodule=importlib.import_module('cleantest')
#code as above
t = unittest.mymodule(exit=False) #to replace t = unittest.main(exit=False)
ошибки я получаю: модуль «UnitTest» не имеет атрибута «MyModule»
Так что мне нужно сделать, чтобы мой код (который был в основном) в работайте на мой взгляд, что делает импорт?
Если я вас правильно понял, вы хотите часть 'if __name__ == '__main __'', выполняемая при импорте файла, не так ли? – Leva7
То есть. Файл, кажется, отлично работает в командной строке – mozman2
Возможный дубликат [Что делает \ 'if \ _ \ _ name \ _ \ _ ==" \ _ \ _ main \ _ \ _ ": \' do?] (Http://stackoverflow.com/questions/419163/what-does-if-name-main-do) – Leva7