0

最近、コードで奇妙なグレムリンに遭遇しています。ランダムに、「スタック レベルが深すぎます (SystemStackError)」エラーが、以前、場合によっては少し前に機能していたコードにダンプされます。SO でスタック レベルを含む同様のスレッドを読みましたが、問題が見つからないようです。どこかで再帰が発生していますが、一貫していないようです。

最も一般的な 2 つのエラー ポイント:

stack level too deep (SystemStackError)
      ./features/step_definitions/login.rb:40:in `/^I enter username "([^"]*)"$/'
      features/01_login.feature:30:in `When I enter username "John"'



stack level too deep (SystemStackError)
      ./features/step_definitions/login.rb:23:in `/^I press select env$/'
      features/01_login.feature:26:in `Then I press select env'

私のテストを実行すると、最初のエラーがユーザー名とともにポップアップし、このテストが正常に完了するまでに少し時間がかかりました。リセット後にテストを再度実行すると、最初の実行で到達したユーザー名に到達するために、この時点までテストを実行する必要があるため、さらに奇妙な 2 番目のエラーが表示されます。この順序は一貫していません。場合によっては、1 つまたは別の部分でエラーが発生し、追跡が困難になることがあります。

問題の 2 つのエラーのコード。

When (/^I enter username "([^"]*)"$/) do | username |
        enter_text "UITextFieldLabel text:'Username'", "John"
    end

Then (/^I press select env$/) do
        touch "label text:'Select Env'"
    end
4

1 に答える 1