我正在使用Hound(https://github.com/HashNuke/hound)进行集成测试Phoenix应用程序。我有铬和铬无头工作。为了使其正常工作,我有另一个运行chromedriver
的终端窗口(通过brew安装)。我觉得这很奇怪。是否有一个库或测试设置会让您感觉更“集成”到了应用程序中?药剂的方法是什么?
在Ruby世界中,有webdrivers
宝石(https://github.com/titusfortner/webdrivers)。据我所知,它会将指定的驱动程序(例如chromedriver)下载到$ HOME。然后,在每次测试运行中,测试都会使用下载到该目标位置的驱动程序来执行测试。
在webdrivers
宝石之前有chromedriver-helper
宝石。在此之前是phantomjs。这些实现使得运行集成测试需要1:下载驱动程序2:运行测试
在Elixir(带有猎犬)中,我的测试通过首先在终端拆分中运行chromedriver --verbose
来进行,然后在另一个屏幕中运行mix test
。这工作正常,但感觉不连贯。这增加了额外的步骤:1:下载驱动程序2:启动驱动程序3:运行测试4:停止驱动程序
我可以手动编写脚本以在后台运行chromedriver,并在测试运行后将其停止。
我是Elixir社区的新手,所以我做了很多研究。对我而言,尚不清楚我是否应该走一条“走过的路”,而不是手动挂接所有东西。
我错过了推荐的抽象吗?这是故意的吗?这是“还没有创建”吗?
谢谢