codeceptjs学习笔记 - 配置文件解释

本文章基于codeceptjs@1.0.1

这篇文章会介绍codeceptjs配置文件的基本用法。

codeceptjs init创建的文件codecept.json就是整个codeceptjs项目的配置文件。这个文件处于整个项目的根目录下。

其大概的内容如下:

{
  "output": "./output", //配置哪里存放失败的测试截图等

  "helpers": {   //配置helper
    "WebDriverIO": {   //配置webdriverio作为helpers
      "url": "http://simple-form-bootstrap.plataformatec.com.br", //配置base url
      "browser": "chrome",  //配置运行的浏览器
      "smartWait": 5000,   //optional,配置Smart Wait时间
      "restart": false,  //optional,配置是否在测试场景之间重启浏览器,默认值是true
      "keepBrowserState": false, //optional, 当restart设置为false的时候,配置是否在测试之间保持浏览器的状态, 默认值是false
      “disableScreenshots”: false, //optional, 配置是否在测试失败时存储截图,默认值是false
      "uniqueScreenshotNames": false, //optional, 如果有同名的测试场景在不同的测试套件里面,配置是否防止测试截图的覆盖,默认值是false
      "keepCookies": false, //optional, 当restart设置为false的时候,配置是否在测试之间保持cookies,默认值是false
      "windowSize": "maximize", //optional, 设置浏览器窗口大小。值可以为"maximize"或格式为"640*480"的尺寸
      "waitForTimeout": 5000, //optional, 给所有wait*()方法设定的默认等待时间. 默认值是1000
      "timeouts": {   // 配置超时时间。webdriverio的timeouts为键值对形式
      "script": 60000,
      "page load": 10000
      },
      "manualStart": false, //optional, 如果设置为true,则在测试之前不会启动浏览器,而需要在helper中加上方法`this.helpers["WebDriverIO"]._startBrowser()`来人工启动。默认值是false
      "url": "YOUR_DESIRED_HOST", //需要连接到cloud provider上去进行测试 比如browserstack或sauce lab
      "user": "YOUR_BROWSERSTACK_USER",
      "key": "YOUR_BROWSERSTACK_KEY",
      "desiredCapabilities": {
        "browserName": "chrome",
        // only set this if you're using BrowserStackLocal to test a local domain
        // "browserstack.local": true,
        // set this option to tell browserstack to provide addition debugging info
        // "browserstack.debug": true,
        "proxy": {   配置代理访问selenium server
          "proxyType": "manual",
          "httpProxy": "http://corporate.proxy:8080",
          "socksUsername": "codeceptjs",
          "socksPassword": "secret",
          "noProxy": "127.0.0.1,localhost"
                }
            }
    },

    "MyHelper": {   //配置自定义的helper
      "require": "./helpers/custom_helpers.js",  //配置自定义helper的文件位置
      "defaultHost": "http://mysite.com" //配置base url
    },

    "Mochawesome": {  //在测试失败时,给mochawesome报告加上screenshot
        "uniqueScreenshotNames": "true"
    }
  },

  "include": {  //配置actor和pageobject。这样才能在测试文件中进行引用
    "I": "./steps_file.js",
    "landingPage": "./pages/landingPage.js",   //配置Page Object的文件,可以让测试文件直接调用
    "landingPageStep": "./steps/LandingPage.js", //配置Step Object的文件,可以让测试文件直接调用
    "landingPageFragment": "./fragments/LandingPage.js" //配置Page Fragment的文件,可以让测试文件直接调用
  },

  "mocha": {   //mocha选项,可以配置reporter
  "reporterOptions": {
      "reportDir": "output",  //配置产生的测试报告文件放到output目录下,比如Mochawesome产生的文件
      "mochaFile": "output/result.xml"  //配置mocha-junit-reporter产生的xml文件放到output目录下
    }
  },

  "bootstrap": "./util/bootstrapAndTeardown/selenium-standalone-start.js", //配置bootstrap脚本的位置,让此脚本在全部测试运行之前运行
  "teardown": "./util/bootstrapAndTeardown/selenium-standalone-stop.js", //配置teardown脚本的位置,让此脚本在全部测试运行之后运行

  "hooks": ["./util/custom_hooks/event_listener.js"],  //配置自定义的hook文件来扩展codeceptjs

  "tests": "./spec/s*_test.js",   //配置需要运行的测试

  "timeout": 10000, //默认的测试超时时间

  "name": "codeceptjs-init",  //项目名称,not used

  "multiple": {    //配置run-multiple 并发多个测试套件的执行
    "smoke": {     //配置一个测试套件 smoke
      "grep": "@smoke",     //配置了该测试套件仅包含有@smoke标签的测试场景。如果没有定义,则代表所有测试场景
      "browsers": [   //配置可以在chrome和firefox中运行测试
        "chrome",
        "firefox"
      ]
    }
  }
}

动态配置

override选项

通过选项--override-o我们可以在运行测试的时候,修改相应的配置,做到运行时的动态配置。

codeceptjs run -o '{ "helpers": {"WebDriverIO": {"browser": "firefox"}}}'

config选项

通过选项--config-c,我们可以运行指定的配置文件;这些文件可以是不同名字的或是在项目不同的目录下

codeceptjs run --config=./path/to/my/config.json

使用codecept.conf.js

我们可以创建codecept.conf.js来包含更多动态的配置项。只需要export config属性即可。

exports.config = {
  helpers: {
    WebDriverIO: {
      // load variables from the environment and provide defaults
      url: process.env.CODECEPT_URL || 'http://localhost:3000',

      user: process.env.CLOUDSERVICE_USER,
      key: process.env.CLOUDSERVICE_KEY,

      coloredLogs: true,
      waitForTimeout: 10000
    }
  },

  // don't build monolithic configs
  mocha: require('./mocha.conf.js') || {},

  // here goes config as it was in codecept.json
  // ....
};
process.profile and --profile选项

通过在codecept.conf.js中配置process.profile,我们可以在运行测试时通过--profile制定相关的值写入配置文件,做到动态配置。

比如下面的列子中,--profile firefox会被作为process.profile的值写入配置文件.

codeceptjs run --profile firefox

exports.config = {
  helpers: {
    WebDriverIO: {
      url: 'http://localhost:3000',
      // load value from `profile`
      browser: process.profile || 'firefox'

    }
  }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 83,085评论 1 181
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 29,782评论 1 149
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 34,823评论 0 105
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 19,160评论 0 90
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 24,530评论 0 150
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 20,316评论 1 91
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 12,975评论 2 168
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 12,360评论 0 84
  • 想象着我的养父在大火中拼命挣扎,窒息,最后皮肤化为焦炭。我心中就已经是抑制不住地欢快,这就叫做以其人之道,还治其人...
    爱写小说的胖达阅读 10,891评论 5 117
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 14,169评论 0 132
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 12,828评论 1 131
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 13,685评论 0 135
  • 白月光回国,霸总把我这个替身辞退。还一脸阴沉的警告我。[不要出现在思思面前, 不然我有一百种方法让你生不如死。]我...
    爱写小说的胖达阅读 8,455评论 0 18
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 11,292评论 2 122
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 14,493评论 3 132
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 10,047评论 0 3
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 10,408评论 0 83
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 15,074评论 2 141
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 15,537评论 2 137

推荐阅读更多精彩内容