我正在尝试将黄瓜项目的用户名和密码保留在版本控制之外。
有没有办法在命令行上手动传递变量,如用户名和密码到黄瓜脚本?
我的备份计划是将它们放在YML文件中并将该文件添加到gitignore中,这样它们就不会被置于版本控制之中。
答案 0 :(得分:11)
所以,我看到你对Tin Man的评论,答案是肯定的。
cucumber PASSWORD=my_password
PASSWORD被设置为环境变量,您可以通过将其引用为ENV['PASSWORD']
来使用其值。例如,browser.text_field(:id => 'pwd').set ENV['PASSWORD']
另一种方式是间接的。
我过去做的是通过个人资料名称,该个人资料将做我想要的事情。因此,例如,我有一个配置文件名称firefox
和一个fireps配置文件在cucumber.yml有一个名为BROWSER_TYPE
的变量,其值分配给firefox。此变量(BROWSER_TYPE
)由我打开浏览器的方法使用。如果它的值是firefox,则此方法打开firefox浏览器。
所以,我在这里做的是 -
firefox
BROWSER_TYPE
的变量,并将其值指定为firefox。BROWSER_TYPE
变量并使用其值打开浏览器的方法。这些步骤的代码 -
cucumber -p firefox
我的cucumber.yml文件看起来像
firefox: BROWSER_TYPE=firefox PLATFORM=beta
我打开浏览器的方法与 -
类似 @browser = Watir::Browser.new ENV['BROWSER_TYPE']
因此,理想情况下,您可以创建一个使用密码设置环境变量的配置文件,并将该配置文件名称传递给黄瓜。
答案 1 :(得分:0)
两个想法:
1)我也有同样的担忧,我创建了一些shell脚本(Mac和Unix),它们将凭证存储在一个用机器专用密码加密的目录中。然后,我可以使用"鉴于名为blah"在我的Cucumber场景中,然后在我的步骤定义中使用@username = testcred get #{credname} username
@username = testcred get #{credname} password
来完成这项工作,我的凭据绝不会在任何地方错误地进入回购。请参阅https://github.com/usethedata/credstore.git了解我将其放入github(早期工作)的位置
2)Lastpass有一个可用的命令行版本。我还使用LastPass帐户分享我的测试凭据,该帐户仅用于测试凭据。我使用上面的信任存储来存储该帐户的lastpass主密码(永远不会是我真正的主密码),然后使用lastpass命令行来获取用户名和密码。这样做的好处是,当我更改Lastpass中的凭据时,它们会自动在他们使用的任何地方更新