scala - 如何处理scala中外部命令的用户交互

标签 scala testing cucumber command-line-interface integration

我有一个删除数据的删除脚本,同时会提示要求继续。我想在 cucumber-cli 中传递我的命令和用户交互“Y”

sys.process.Process("abc delete #>> Y", new java.io.File(getProjectPath)).!

我试过了

  • echo Y | abc delete
  • abc delete <<< Y
  • printf Y | abc delete

但似乎没有一个在 scala-cucumber 中起作用。它仅适用于终端。 可能是什么问题?

那是我的O/p

  Press 'Y' to continue...
Exception in thread "main" java.io.EOFException: Console has reached end of input
    at scala.io.StdIn$class.readChar(StdIn.scala:93)
    at scala.io.StdIn$.readChar(StdIn.scala:229)

最佳答案

我不知道 cucumber-cli 是什么,但这可能对您有帮助:

import java.io.ByteArrayInputStream

val inputString = "y"
val is = new ByteArrayInputStream(inputString.getBytes("UTF-8"))
val process = Process("abc delete") #< is
process.run()

关于scala - 如何处理scala中外部命令的用户交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48508134/

相关文章:

scala - 使用 Jackson 对 Scala 枚举进行 JSON 序列化

c# - 如何在 Rhino Mocks 3.6 中将 Expect 设置为扩展方法

json - 从 spark 中保存压缩的 json

scala - 使用 Play Json 将可选的 json 字段转换为选项?

scala - IntelliJ 哪一招不是已经用过了?

java - 如何编写将 json 响应与场景大纲表进行比较的步骤定义

java - cucumber-jvm 的全局 BeforeAll Hook ?

使用 promises 测试 ember 组件

php - 在 PHP 中为多变量测试创建配方?

ruby - cucumber 从 3 列表中读取数据?