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

时间:2018-01-29 18:55:59

标签: 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)

2 个答案:

答案 0 :(得分:0)

我不知道黄瓜cli是什么,但这可能会对你有所帮助:

import java.io.ByteArrayInputStream

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

答案 1 :(得分:0)

(&#34; echo Y&#34;#&gt; edhCommand)。!工作