0

I am trying to use pactJS and to generate pacts.

I am using karma / jasmine to run my tests..

Below is my package.json

{
  "name": "andriod-pact",
  "version": "1.0.0",
  "description": "This is a microservice that is one of the two consumers of 
the provider microservice",
  "main": "index.js",
  "scripts": {
  "test": "echo \"Error: no test specified\" && exit 1"
 },
  "author": "",
  "license": "ISC",
  "devDependencies": {
  "jasmine": "^2.6.0",
  "karma": "^1.7.0",
  "karma-phantomjs-launcher": "^1.0.4",
  "pact": "^2.6.0"
 }
}

And this is my karma.conf file

// Karma configuration // Generated on Tue Jul 25 2017 15:32:06 GMT+0200 (W. Europe Daylight Time)

    module.exports = function(config) {
      config.set({

        // base path that will be used to resolve all patterns (eg. files, exclude)
        basePath: '',

        // frameworks to use
        // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
        frameworks: ['jasmine', 'pact'],

        // list of files / patterns to load in the browser
        files: [
         '../../dist/pact-web.js',
        'src/test/js/*.js'
        ],


        // list of files to exclude
        exclude: [
        ],


        // preprocess matching files before serving them to the browser
        // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
        preprocessors: {
        },


        // test results reporter to use
        // possible values: 'dots', 'progress'
        // available reporters: https://npmjs.org/browse/keyword/karma-reporter
        reporters: ['progress'],


        // web server port
        port: 9876,


        // enable / disable colors in the output (reporters and logs)
        colors: true,


        // level of logging
        // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
        logLevel: config.LOG_INFO,


        // enable / disable watching file and executing tests whenever any file changes
        autoWatch: true,


        // start these browsers
        // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
        browsers: ['PhantomJS_without_security'],

        customLaunchers: {
          PhantomJS_without_security: {
            base: 'PhantomJS',
            flags: ['--web-security=no']
          }
        },

        // Continuous Integration mode
        // if true, Karma captures browsers, runs the tests and exits
        singleRun: false,

        // Concurrency level
        // how many browser should be started simultaneous
        concurrency: Infinity
      })
    }

But when I run my tests using karma start karma.conf

I get this error

Error: No provider for "framework:pact"! (Resolving: framework:pact)
    at error (C:\PactDemoMaster\PactDemoAndroidApp\node_modules\di\lib\injector.js:22:12)
    at Object.parent.get (C:\PactDemoMaster\PactDemoAndroidApp\node_modules\di\lib\injector.js:9:13)
    at get (C:\PactDemoMaster\PactDemoAndroidApp\node_modules\di\lib\injector.js:54:19)
    at C:\PactDemoMaster\PactDemoAndroidApp\node_modules\karma\lib\server.js:143:20
    at Array.forEach (native)
    at Server._start (C:\PactDemoMaster\PactDemoAndroidApp\node_modules\karma\lib\server.js:142:21)
    at invoke (C:\PactDemoMaster\PactDemoAndroidApp\node_modules\di\lib\injector.js:75:15)
    at Server.start (C:\PactDemoMaster\PactDemoAndroidApp\node_modules\karma\lib\server.js:103:18)
    at Object.exports.run (C:\PactDemoMaster\PactDemoAndroidApp\node_modules\karma\lib\cli.js:280:26)
    at requireCliAndRun (C:\Users\aajai_000\AppData\Roaming\npm\node_modules\karma-cli\bin\karma:44:16)
    at C:\Users\aajai_000\AppData\Roaming\npm\node_modules\karma-cli\bin\karma:54:12
    at C:\Users\aajai_000\AppData\Roaming\npm\node_modules\karma-cli\node_modules\resolve\lib\async.js:45:21
    at ondir (C:\Users\aajai_000\AppData\Roaming\npm\node_modules\karma-cli\node_modules\resolve\lib\async.js:196:27)
    at C:\Users\aajai_000\AppData\Roaming\npm\node_modules\karma-cli\node_modules\resolve\lib\async.js:163:39
    at onex (C:\Users\aajai_000\AppData\Roaming\npm\node_modules\karma-cli\node_modules\resolve\lib\async.js:104:32)
    at C:\Users\aajai_000\AppData\Roaming\npm\node_modules\karma-cli\node_modules\resolve\lib\async.js:24:24

If someone can point me to the obvious problem...

Regards

bbarke
  • 309
  • 1
  • 14
abhishek
  • 31
  • 1
  • 6

1 Answers1

0

You're missing the karma-pact plugin, it does not come by default with the standard pact dependency.

See https://github.com/pact-foundation/karma-pact.

Matthew Fellows
  • 3,669
  • 1
  • 15
  • 18
  • Thanks Matt for coming back... But after doing that, I am getting the below error ` Error: Command failed: taskkill /f /t /pid 9488 ERROR: The process "9488" not found. at checkExecSyncError (child_process.js:486:13) at Object.execSync (child_process.js:526:13) at Server.stop (C:\PactDemoMaster\PactDemoAndroidApp\node_modules\@pact-foundation\pact-node\src\server.js:138:7) at Server.delete (C:\PactDemoMaster\PactDemoAndroidApp\node_modules\@pact-foundation\pact-node\src\server.js:155:14) ` – abhishek Jul 26 '17 at 12:48
  • Can you please raise this as a bug on pact Js repo? Looks like a Windows related issue. The karma Pact plugin is kicking off it seems, however. – Matthew Fellows Jul 26 '17 at 20:28