【问题标题】:How do I run Typescript tests for Jasmine\Karma through a TFS Build Process如何通过 TFS 构建过程为 Jasmine\Karma 运行 Typescript 测试
【发布时间】:2016-12-21 11:32:09
【问题描述】:

我有一个使用 Angular 1.5 的 Web 应用程序,使用 Typescript 编码的 bower/npm/gulp 来进行构建。我们的后端是一个 c# .net WebApi2。两者都是在 TFS2015 上构建和部署的。我的 c# nUnit 测试很容易集成为构建过程的一部分。然而,Typescript jasmine 单元测试更难集成。如何让我的 Typescript jasmine 单元测试作为 TFS 构建的一部分运行,如果它们失败,则构建失败?我们让它们通过 Jasmine Spec 运行器和 Karma 运行,但未集成。

我已阅读有关 StackOverflow 集成 Javascript 单元测试的许多帖子,每条途径都让我了解了一个过于复杂但不起作用的解决方案。其中包括 Powershell 脚本、Chutzpah 等。

【问题讨论】:

    标签: c# angularjs typescript tfs karma-jasmine


    【解决方案1】:

    而不是尝试在构建服务器上通过 Chutzpah 重新创建 Specrunner,我发现它很难配置和工作。目的是让 karma 以 TFS 识别的“trx”测试格式输出正在运行的测试,然后将它们发布到构建中。请注意,我正在使用 PhantomJs 通过 Karma 运行我的测试,但这里不会介绍它,因为它在其他地方已经很好地介绍了。

    1) 通过 npm 将karma-trx-reporter plugin 安装到您的 Web 项目(或类似插件)中

    2) 配置 Karma.config 以包含 trx 报告器

    reporters: ['dots', 'trx'],
    
    trxReporter: { outputFile: 'test-results.trx' },
    
    // notify karma of the available plugins
    plugins: [
      'karma-jasmine',
      'karma-phantomjs-launcher',
      'karma-trx-reporter',
    ],
    

    3) 创建一个 Gulp(或 grunt)任务来运行业力测试(如果您还没有)。在本地运行任务并检查它是否创建了上面指定的“test-results.trx”。 (文件在构建服务器上创建的位置无关紧要):

    gulp.task('test', function () {
        return gulp.src(['tests/*.js']).pipe(karma({
            configFile: __dirname + '/Testing/karma.config.js',
            singleRun: true
        }));
    });
    

    4) 添加一个 Gulp(或 Grunt)TFS 构建任务来运行在上一步中创建的业力测试并输出 trx 文件。

    5) 添加一个 Gulp(或 Grunt)TFS 构建任务来发布测试结果并将它们合并到构建中。请注意,“测试结果文件”路径是通配符 **/*.trx,用于查找构建路径中的任何 trx 文件(即查找我们之前创建的文件)。选中“合并测试结果”以将我们的 Jasmine 测试运行和我们的 c# 测试运行合并到同一个会话中。取消勾选“Continue on error”以确保任何 jasmine 测试失败都会破坏构建。

    您会注意到已运行并包含在构建中的两组测试!

    【讨论】:

    • 感谢您的步骤。我在远程 VM 上运行业力测试。你知道如何让它们回到控制器,以便构建可以找到 trx 文件吗?
    • 你有两个选择;更改 Karma.config 的 outputFile 属性,或者更改 Publish Test Results TFS Build 任务的 Tests Results Files 属性。另一种方法是将正在运行的测试移动到与构建代理相同的机器上。那是我的首选。我在项目中安装了 karma-pantomjs 插件,因此没有任何额外的下载\配置来运行测试。
    • 这是我必须做的事情:gooroo.io/GoorooTHINK/Article/17028/…
    猜你喜欢
    • 2013-05-15
    • 2015-12-07
    • 1970-01-01
    • 2019-02-17
    • 2014-12-07
    • 2011-11-08
    • 2015-12-10
    • 2016-05-19
    • 2014-01-10
    相关资源
    最近更新 更多