codeceptjs學習筆記 - 配置文件解釋

本文章基于codeceptjs@1.0.1

這篇文章會介紹codeceptjs配置文件的基本用法握截。

codeceptjs init創(chuàng)建的文件codecept.json就是整個codeceptjs項目的配置文件之剧。這個文件處于整個項目的根目錄下汤踏。

其大概的內(nèi)容如下:

{
  "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的時候,配置是否在測試之間保持瀏覽器的狀態(tài)贮乳, 默認值是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的文件,可以讓測試文件直接調(diào)用
    "landingPageStep": "./steps/LandingPage.js", //配置Step Object的文件厨疙,可以讓測試文件直接調(diào)用
    "landingPageFragment": "./fragments/LandingPage.js" //配置Page Fragment的文件洲守,可以讓測試文件直接調(diào)用
  },

  "mocha": {   //mocha選項,可以配置reporter
  "reporterOptions": {
      "reportDir": "output",  //配置產(chǎn)生的測試報告文件放到output目錄下沾凄,比如Mochawesome產(chǎn)生的文件
      "mochaFile": "output/result.xml"  //配置mocha-junit-reporter產(chǎn)生的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 并發(fā)多個測試套件的執(zhí)行
    "smoke": {     //配置一個測試套件 smoke
      "grep": "@smoke",     //配置了該測試套件僅包含有@smoke標簽的測試場景叙谨。如果沒有定義,則代表所有測試場景
      "browsers": [   //配置可以在chrome和firefox中運行測試
        "chrome",
        "firefox"
      ]
    }
  }
}

動態(tài)配置

override選項

通過選項--override-o我們可以在運行測試的時候保屯,修改相應的配置手负,做到運行時的動態(tài)配置。

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

config選項

通過選項--config-c姑尺,我們可以運行指定的配置文件竟终;這些文件可以是不同名字的或是在項目不同的目錄下

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

使用codecept.conf.js

我們可以創(chuàng)建codecept.conf.js來包含更多動態(tài)的配置項。只需要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制定相關的值寫入配置文件,做到動態(tài)配置柄粹。

比如下面的列子中喘鸟,--profile firefox會被作為process.profile的值寫入配置文件.

codeceptjs run --profile firefox

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

    }
  }
};
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市镰惦,隨后出現(xiàn)的幾起案子迷守,更是在濱河造成了極大的恐慌,老刑警劉巖旺入,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兑凿,死亡現(xiàn)場離奇詭異凯力,居然都是意外死亡,警方通過查閱死者的電腦和手機礼华,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門咐鹤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人圣絮,你說我怎么就攤上這事祈惶。” “怎么了扮匠?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵捧请,是天一觀的道長。 經(jīng)常有香客問我棒搜,道長疹蛉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任力麸,我火速辦了婚禮可款,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘克蚂。我一直安慰自己闺鲸,他們只是感情好,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布埃叭。 她就那樣靜靜地躺著摸恍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪游盲。 梳的紋絲不亂的頭發(fā)上误墓,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機與錄音益缎,去河邊找鬼谜慌。 笑死,一個胖子當著我的面吹牛莺奔,可吹牛的內(nèi)容都是我干的欣范。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼令哟,長吁一口氣:“原來是場噩夢啊……” “哼恼琼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起屏富,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤晴竞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后狠半,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體噩死,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡颤难,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了已维。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片行嗤。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖垛耳,靈堂內(nèi)的尸體忽然破棺而出栅屏,到底是詐尸還是另有隱情,我是刑警寧澤堂鲜,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布栈雳,位于F島的核電站,受9級特大地震影響缔莲,放射性物質(zhì)發(fā)生泄漏甫恩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一酌予、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奖慌,春花似錦抛虫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至岛马,卻和暖如春棉姐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背啦逆。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工伞矩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人夏志。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓乃坤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親沟蔑。 傳聞我的和親對象是個殘疾皇子湿诊,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容