1

Jasmine テスト スイートには 400 以上のテストがありますが、小さな問題があるようです。specrunner は実際には 5 回に 1 回しか実行されないようで、成功するかどうかはかなりランダムに見えます。それが「かかる」とき、それはすべてうまくいくでしょう。「取得」しない場合、ページはエラーや何も発生せずにそこに留まり、しばらくスピンしてから空の画面を表示します。

Firefox と Chrome の両方で同じ動作が見られます。

他の誰かが同様の問題に遭遇し、問題が何であるかを示している可能性があります。

この問題は徐々に悪化しているように見えるので、ページ サイズに関連しているのではないかと考えています。私の SpecRunner ページは RAZOR スクリプトで、次のようになります...

@using SiansPlan.Authentication
@using SiansPlan.Spa
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Jasmine Spec Runner for SiansPlan SPA</title>

    <link rel="stylesheet" type="text/css" href="Content/jasmine.css">

    <script type="text/javascript" src="scripts/lib/jasmine.js"></script>
    <script type="text/javascript" src="scripts/lib/jasmine-html.js"></script>
    <script type="text/javascript" src="scripts/lib/jasmine-jquery.js"></script>
    <script src="~/scripts/lib/handlebars.js"></script>
    <script data-main="scripts/test/main.js" src="scripts/lib/require.js"></script>

    <script type="text/javascript">
        require(["../lib/domReady"
            @foreach (var file in Html.PathContentFromRoot("scripts/test/spec", Server))
            {
                <text>,"spec/@file"</text>
            }
            ], function () {
            var jasmineEnv = jasmine.getEnv();
            jasmineEnv.updateInterval = 1000;

            var htmlReporter = new jasmine.HtmlReporter();

            jasmineEnv.addReporter(htmlReporter);

            jasmineEnv.specFilter = function (spec) {
                return htmlReporter.specFilter(spec);
            };

            var currentWindowOnload = window.onload;

            window.onload = function () {
                if (currentWindowOnload) {
                    currentWindowOnload();
                }
                execJasmine();
            };

            function execJasmine() {
                jasmineEnv.execute();
            }

        })();
  </script>

</head>

<body>
    <div style="display:none;">
        @* Key platform variables. *@
        <span id="requestSource">website</span>
        <span id="apiKey">@ApiKeyManager.Instance.GetKey("website")</span>
    </div>
</body>
</html>

他に何かお役に立てることがありましたら、お知らせください。

更新: これは現在完全に停止しています - window.onload イベントが発生していないことを突き止めました。

4

1 に答える 1