Проблемы с выполнением юнит-тестов Selenium Python в C # с ScriptEngine (.NET 3.5)
первый раз постер.
я перехожу к моему первому вопросу о переполнении стека, потому что яМы нашли мало ресурсов, пытаясь найти ответ. Я'ищу выполнение тестов Selenium Python из приложения C #. Я неt каждый раз приходится компилировать тесты C # Selenium; Я хочу воспользоваться сценариями IronPython для динамического тестирования селена. (примечание: у меня мало опыта работы с Python или ScriptEngine и др.)
Selenium выводит юнит-тесты в python в следующей форме:
from selenium import selenium
import unittest
class TestBlah(unittest.TestCase):
def setUp(self):
self.selenium = selenium(...)
self.selenium.start()
def test_blah(self):
sel = self.selenium
sel.open("http://www.google.com/webhp")
sel.type("q", "hello world")
sel.click("btnG")
sel.wait_for_page_to_load(5000)
self.assertEqual("hello world - Google Search", sel.get_title())
print "done"
def tearDown(self):
self.selenium.stop()
if __name__ == "__main__":
unittest.main()
Я могу запустить его без проблем из командной строки, используя ipy.exe:
ipy test_google.py
И я вижу, как Selenium Server запускает экземпляр браузера Firefox и запускает тест.
Я не могу достичь того же результата, используя ScriptEngine и другие API в C #, .NET 3.5, и я думаю, чтососредоточены вокруг неспособности выполнить функцию main (), которую яЯ предполагаю, что следующий код:
if __name__ == "__main__":
unittest.main()
мы пробовали engine.ExecuteFile (), engine.CreateScriptSourceFromString () / source.Execute () и engine.CreateScriptSourceFromFile () / source.Execute (). Я попробовал scope.SetVariable ("", ""__name__
__main__
). Я получаю некоторый успех, когда я комментирую, если__name__
часть файла py и вызовите engine.CreateScriptSourceFromString ("unittest.main (модуль = None») после engine.Runtime.ExecuteFile () вызывается в файле py. Я'мы пытались сохранить результаты в python и получить к ним доступ через scope.GetVariable (). Я'Мы также пытались написать функцию Python, которую я мог бы вызвать из C # для выполнения модульных тестов.
(движок - это экземпляр ScriptEngine, источник - экземпляр ScriptSource и т. д.)
Мое незнание Python, ScriptEngine или модуля unittest может легко стать причиной моих неприятностей. Кому-нибудь повезло в выполнении юнит-тестов python с использованием ScriptEngine и т. Д. API в C #? Кто-нибудь успешно казнил?главный" код из ScriptEngine?
Кроме того, ямы читали, что в unittest есть тестовый прогон, который поможет получить доступ к ошибкам через объект TestResult. Я считаю, что синтаксис следующий. У меня нетя еще не добрался, но знаю, чтоВам нужно будет собрать результаты.
unittest.TextTestRunner(verbosity=2).run(unittest.main())
Заранее спасибо. Я понял этоЛучше было бы иметь больше деталей, чем меньше. = Р