我用karma和jasmin单元测试来编写我的角度应用程序.我在打字稿中得到了代码:
module app {
...
}
Run Code Online (Sandbox Code Playgroud)
生成的javascript如:
var app;
(function (app) {
...
})(app || (app = {}));
Run Code Online (Sandbox Code Playgroud)
现在,当我运行karma-coverage时,它会向我显示跳过一个分支,它是|| (app = {})) ; 这个.当我测试更多获得app模块的文件时会发生这种情况.
如何在茉莉花中测试它,获得100%的分支覆盖率?
unit-testing angularjs typescript karma-runner karma-coverage
有关浏览器覆盖率的Karma,我需要一些帮助.我用我在这里运行的测试创建了一个repo:
https://github.com/jotaoncode/web-istanbul
测试仅在函数索引上运行.但正如您所看到的结果是100%并且仅标记绿色文件的第一行.
我已经看到伊斯坦布尔正确显示覆盖值的情况,我已经改变了测试和来源,但没有.
我也有这个业力配置:
module.exports = function(config) {
config.set({
//logLevel: 'LOG_DEBUG',
reporters: ['spec', 'coverage'],
// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun : true,
autoWatch : false,
// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '',
port: 9876,
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: [
'mocha',
'browserify'
],
files: [
'src/**/*.js',
'test/*.js'
],
// list of files …Run Code Online (Sandbox Code Playgroud) 如何使用.js解决方案中的所有文件测量Polymer组件的公共覆盖范围(对于非组件测试,使用QUnit)?
我试过了karma-coverage,但它只适用于.js文件.
我正在使用业力进行单位测试我的角度2应用程序.我有以下目录结构 -
??? src/
??? index.js
??? index.js.text
??? index.test.js
??? README.txt
??? startuptest.js
??? lib/
| ??? util.js
| ??? util.test.js
| ??? filters/
| ??? kalman.js
| ??? lowpass.js
??? test/
| ??? main.js
| ??? lib/
| ??? filters.js
| ??? util.js
??? vendor/
??? jquery.js
??? three/
??? three.js
??? three.fps.js
Run Code Online (Sandbox Code Playgroud)
我想排除我的所有文件
src/lib/!(filters)/**
Run Code Online (Sandbox Code Playgroud)
从报道报告.但我想保留目录其余部分的所有文件
我试过了,
{src/**, src/lib/!(filters)/**}/!(*.spec!).js : coverage
Run Code Online (Sandbox Code Playgroud)
但它正在跳过一切.
这该怎么做?
javascript testing karma-runner karma-jasmine karma-coverage
我正在尝试在TeamCity构建服务器上运行Angular CLI项目的单元测试.
如果我使用命令:
ng test --single-run --code-coverage
Run Code Online (Sandbox Code Playgroud)
然后,正如预期的那样,我得到了测试覆盖率报告,但是各个测试结果没有显示在TeamCity中.
如果我打开TeamCity报告:
ng test --single-run --code-coverage --reporters teamcity
Run Code Online (Sandbox Code Playgroud)
然后测试通过并且TeamCity报告完美地工作,但它无声地生成代码覆盖率报告.此行为在我的本地计算机上是可重现的,因此它与构建服务器的配置方式无关.
有这两个选项应该互相排斥的原因吗?
注意 - 这与在TeamCity上为Karma配置代码覆盖率报告不同.如果报告在那里,那么TeamCity会正确显示它,但如果我打开TeamCity报告标志,那么coverage文件夹就不存在了.
附加信息:
业力配置:
// Karma configuration file, see link for more information
// https://karma-runner.github.io/0.13/config/configuration-file.html
module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine', '@angular/cli'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('@angular/cli/plugins/karma'),
require('karma-teamcity-reporter')
],
client:{
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
files: [
{ pattern: './src/test.ts', watched: false …Run Code Online (Sandbox Code Playgroud) export interface User {
name: string;
}
Run Code Online (Sandbox Code Playgroud)
我如何对上述界面进行单元测试,因此Karma可以在代码覆盖率报告中显示它?
我已经尝试创建对象并断言一些属性,但是没有用.测试通过,但业力不在代码覆盖率报告中考虑它.
import { User } from "./user";
describe('User', () => {
it('test', () => {
const obj: User = {
name: "xxx",
}
expect(obj.name).toEqual("xxx");
});
});
Run Code Online (Sandbox Code Playgroud) 我们正在尝试为我们的角度应用程序制作SonarQube代码覆盖率报告.我们使用Karma生成代码覆盖率报告并将其导入SonarQube分析器.
SonarQube已经为我们的项目提供了C#覆盖,现在我们也希望添加JavaScript代码覆盖.
Teamcity调用,Karma和它创建代码覆盖并将lcov文件和报告文件放入src\Planning.Spa\Coverage\report文件夹.
LCOV文件
TN:
SF:E:/a03/work/bb52cb33e083fc9/src/Planning.Spa/Offer/app/app.component.js
FN:5,(anonymous_1)
FN:6,AppComponent
FN:8,(anonymous_3)
FN:9,(anonymous_4)
Run Code Online (Sandbox Code Playgroud)
Teamcity具有以下MSBuild参数,用于生成C#代码覆盖率和JavaScript覆盖率.
SonarQube MSBuild配置
$sonar=%system.MSBUILD_SONARQUBE_RUNNER%\MSBuild.SonarQube.Runner.exe
begin /k:"com.test:Test" /n:"MyProject" /v:"%build.number%"
/d:sonar.cs.dotcover.reportsPaths="$coverageReport"
/d:sonar.cs.nunit.reportsPaths="$testResults"
/d:sonar.javascript.lcov.reportPaths="coverage\report\lcov.info"
Run Code Online (Sandbox Code Playgroud)
在运行SonarQube分析时,我们收到以下错误
[14:35:56][Step 13/13] 14:35:56.243 WARN: Could not resolve 114 file paths in
[E:\a03\work\bb52cb33e083fc9\src\Planning.Spa\coverage\report\lcov.info],
first unresolved path: E:/a03/work/bb52cb33e083fc9/src/Planning.Spa/Offer/app/app.component.js
Run Code Online (Sandbox Code Playgroud)
我们没有找到使用MSBuild runner运行C#和JavaScript的任何示例.也找不到任何与此相关的答案Could not resolve file paths
我们正努力让它在过去两周内发挥作用,但却找不到任何有用的示例或答案.类似的问题在这里和这里都没有答案
更新声纳分析更多信息
[14:35:43][Step 13/13] 14:35:43.751 INFO: Base dir: E:\a03\work\bb52cb33e083fc9\src\Planning.Spa
[14:35:43][Step 13/13] 14:35:43.751 INFO: Working dir: E:\a03\work\bb52cb33e083fc9\.sonarqube\out\.sonar\com.Planning_com.Planning_6CC487F0-8283-4351-9B65-F1698B1B804E
[14:35:43][Step 13/13] 14:35:43.755 INFO: Source paths: Offer/App/app.component.js, Offer/App/app.component.js.map, Offer/App/Common/order-by.pipe.js
[14:35:43][Step 13/13] 14:35:43.755 …Run Code Online (Sandbox Code Playgroud) 我需要将相对路径作为 SF: karma 覆盖生成的 lcov.info 文件中的参数值。这是为了使 SonarQube 能够收集信息以显示覆盖范围。目前,SF参数具有完整的绝对路径,例如c:\abc\xyz....\src\bar\foo.js
我需要 SF: src\bar\foo.js
有办法实现这一点吗?
我试图弄清楚如何在角度CLI的生成的覆盖率报告中包含我的所有.ts源.目前,我只是覆盖了具有相关规范和测试的文件.
我已经尝试将includeAllSources标志添加到我的karma.conf.js文件中,但这没有任何区别.
这是正确的方法吗?我正在使用Angular CLI 6.1.5
谢谢
我正在尝试使用https://webpack.js.org/loaders/istanbul-instrumenter-loader/运行代码覆盖率
这是 karma.conf.js
var testWebpackCfg = require('../webpack/webpack.config.test.js');
module.exports = function(config) {
config.set({
basePath: '../../',
frameworks: ['jasmine'],
plugins: [ 'karma-webpack', 'karma-jasmine-jquery', 'karma-jasmine', 'karma-chrome-launcher','karma-firefox-launcher', 'karma-coverage','karma-spec-reporter', 'karma-jasmine-html-reporter'],
preprocessors: {
'client/test/index.js': ['webpack']
},
reporters: [ 'spec', 'coverage-istanbul'],
coverageIstanbulReporter: {
reports: [ 'text-summary' ],
dir: './coverage',
fixWebpackSourcePaths: true
},
files: [
'client/test/index.js'
],
webpack: testWebpackCfg,
// web server port
port: 9876,
runnerPort: 9100,
urlRoot: '/',
// level of logging
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
logLevel: config.LOG_INFO, …Run Code Online (Sandbox Code Playgroud) karma-coverage ×10
karma-runner ×6
istanbul ×3
javascript ×3
angular ×2
angular-cli ×2
sonarqube ×2
typescript ×2
angularjs ×1
jasmine ×1
karma-mocha ×1
polymer ×1
sonarjs ×1
teamcity ×1
testing ×1
unit-testing ×1
wct ×1