编程语言
首页 > 编程语言> > javascript-Visual Studio Chutzpah使用AMD模块在不同项目上运行测试

javascript-Visual Studio Chutzpah使用AMD模块在不同项目上运行测试

作者:互联网

在解决方案下,我有两个项目,一个是我的主要Web项目,例如MyProject,另一个是用于测试目的,例如MyProject.Tests.

Solution
    MyProject
    MyProject.Tests

我想让我的JavaScript无头测试运行到第二个.
在第一个项目中,所有的javascript文件都在Scripts目录下,如下所示:

Scripts/
    Common.js
    Libs/
        jquery/
            jquery.js
        requirejs/
            require.js

在测试项目中,我的chutzpah.json文件位于根目录下.

MyProject.Tests
    chutzpah.json
    Tests/
        Specs/
            spec.js

该文件具有以下配置:

{
    "Framework": "jasmine",
    "TestHarnessReferenceMode": "AMD",
    "TestHarnessLocationMode": "SettingsFileAdjacent",
    "Tests": [ { "Path": "Tests/Specs" } ],
    "AMDBasePath": "../MyProject/Scripts",
    "CodeCoverageExcludes": ["*Common.js"],
    "References": [
        { "Path": "../MyProject/Scripts/Libs/requirejs/require.js" },
        { "Path": "../MyProject/Scripts/Common.js" }
    ]
}

但是,当我尝试运行规格文件时,出现错误.

规格文件:

define(["jquery"], function ($) {
    //code here. Doesn't matter, the error is because of the jquery module
});

错误是这样的:

Error: Error opening C:/Users/g.dyrrahitis/Documents/Visual Studio 2013/Projects/MySolution/MyProject.Tests/Scripts/Libs/jquery/jquery.js: The system cannot find the path specified.

问题是chutzpah尝试在测试项目而不是它所在的主项目中找到我的jquery模块.

为什么我会出现这种行为,请问该如何解决?到目前为止,我已经尝试了好几个小时才能解决这个问题,但是没有运气.

注意

*名称MySolution,MyProject,MyProject.Tests是为了清楚起见,而不是使用真实名称.

解决方法:

我已经找到了,chutzpah文件没有测试工具目录的正确配置选项(如预期的那样).
我需要TestHarnessDirectory和TestHarnessLocationMode选项来明确指示它查看我的主项目目录.

现在这是正确的:

{
    "TestHarnessDirectory": "../MyProject",
    "TestHarnessLocationMode": "Custom",
    "TestHarnessReferenceMode": "AMD",

    "Framework": "jasmine",
    "Tests": [ { "Path": "JavaScript/Specs" } ],
    "AMDBasePath": "../MyProject/Scripts",
    "CodeCoverageExcludes": [ "*Common.js" ],
    "References": [
        { "Path": "../MyProject/Scripts/Libs/requirejs/require.js" },
        { "Path": "../MyProject/Scripts/Common.js" }
    ]
}

只需告诉chutzpah,线束位置模式是自定义的,以便为其提供目录,这是我的主项目的根目录.

然后要提防正确的配置路径,您可能会像我一样费时几个小时才能找到解决方案.并仔细阅读documentation(我还没有读过).

标签:visual-studio-2013,requirejs,amd,javascript,chutzpah
来源: https://codeday.me/bug/20191120/2044221.html