它只能在我的机器上运行-
在使用Azure DevOps之前,我只安装了此Chutzpah VSIX 'Test Adapter' add-on即可运行我的QUnit测试。我的test.js
使用Chutzpah的参考语法..因此Chutzpah将在IDE的Test Explorer
中公开测试,我可以像其他任何程序一样运行它们。
Azure管道文档-says right here的VSTest@2
任务运行程序支持运行Chutzpah单元测试:
在构建或发布管道中使用此任务,以使用Visual Studio Test Runner运行单元测试和功能测试(Selenium,Appium,编码的UI测试等)。除了基于MSTest的测试之外,还可以执行具有Visual Studio测试适配器的测试框架,例如xUnit,NUnit,Chutzpah。
但是未发现我的QUnit / Chutzpah测试-如果我将此解决方案堆栈上传到Azure DevOps存储库,并使用ASP.NET的默认YAML,则会发现多个单元测试和成功运行它们,但是我的javascript / QUnit测试都没有
我猜,我的Chutzpah VSIX加载项没有出现在Azure DevOps构建代理计算机上,我需要做一些事情才能使其正常工作-但是,那又是什么?我目前不使用Chutzpah nuget pkg-应该吗?
更新...
根据此Art of Simplicity blog post,我确实需要安装Chutzpah NuGet软件包。
此NuGet程序包包含所有必需的DLL和工具,以便能够运行JavaScript测试。使用这种方法,您无需在构建服务器上安装Chutzpah测试适配器,也无需指定测试适配器的位置。 TFS Build测试工具将自动检测所需的DLL,并为您加载测试适配器。
我是Azure DevOps的新手(并且是Azure DevOps的前身),并且没有调整我的Google-fu以包含诸如“ TFS”之类的术语-所以也许我需要基于此开始搜索。
更新...
根据上面的博客文章,我现在在Web项目的根目录中添加了一个chutzpah.config
文件(它不在我的仓库的根目录中。我的仓库中有多个嵌套在各个级别的解决方案)。 让它在管道服务器上构建仍然没有运气
答案 0 :(得分:0)
对我来说,关键是我必须将Chutzpah NuGet软件包添加到我的Web项目中,然后告诉构建代理/测试运行者在哪里可以找到Chutzpah的“东西”(请参见yaml中的pathtoCustomTestAdapters
开关)下面)more here
这是对我有用的.yml文件:
- task: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
testAssemblyVer2: '$(Build.SourcesDirectory)/MyApp/trunk/MyWebAppProject/Scripts/tests/test**.js'
pathtoCustomTestAdapters: '$(Build.SourcesDirectory)/MyApp/trunk/packages/Chutzpah.4.4.3/tools/'
尽管在某些地方被告知要添加.runsettings
文件,但这似乎不适用于我的Azure DevOps构建代理。它实际上使它感到困惑!
FWIW-这是chutzpah.json
,位于我的Web项目的根目录中(不是回购的根目录)
{
"Framework": "qunit",
"FrameworkVersion": "1",
"TestHarnessLocationMode": "TestFileAdjacent",
"References": [
{
"Path": "Scripts/qunit.js",
"IsTestFrameworkFile": true
},
{
"Path": "Content/qunit.css",
"IsTestFrameworkFile": true
}
],
"Tests": [
{
"Path": "Scripts/tests/",
"ExpandReferenceComments": true,
"Excludes": [ "fake_razor.js", "fake_razor_search.js","MyCorp.Spa.Routing.Callbacks.js" ]
}
]
}
我不知道添加此.json是否对我的成功至关重要。