运行测试和REPL的工作方式不同

时间:2017-03-20 21:22:57

标签: emacs clojure webdriver cider

我在Clojure / Cider中发现了很奇怪的行为。当我尝试以两种方式执行相同的表达式(运行测试并在REPL中运行)时,我得到了不同的结果。

这是一个表达式:

  (with-chrome {} driver
    (start)
    (doto driver
      (go "http://localhost:3000")
      (wait-visible {:id :domain})
      (fill {:id :domain} "foo")
      (click {:id :login_button})
      (wait 5))
    (stop))

第一种方式是我用deftest包裹它。第二个我复制并粘贴在REPL中。不同之处在于,当我运行测试时,click命令根本不起作用。虽然REPL场景也有效。

有人可以给我一个提示吗? PS:我在上面的示例中使用etaoin库。

1 个答案:

答案 0 :(得分:0)

嗯,原因是我将整个代码包装到由于TRUNCATE操作而锁定表的DB事务中。这就是为什么点击一个按钮会发送一个永远挂起的ajax请求。