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 イベントが発生していないことを突き止めました。