From c3faff9c7e0f062f7b095f8eba50587b21b49b20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=96=B0=E5=BC=BA?= Date: Sun, 28 Jul 2019 20:41:32 +0800 Subject: [PATCH 01/18] singleRun false --- karma.conf.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/karma.conf.js b/karma.conf.js index 0747749..432b55e 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -70,7 +70,7 @@ module.exports = function(config) { // Continuous Integration mode // if true, Karma captures browsers, runs the tests and exits - singleRun: true, + singleRun: false, // Concurrency level // how many browser should be started simultaneous From 7d6207a06b4a344ee463e3a238f18493bcfbd717 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=96=B0=E5=BC=BA?= Date: Sun, 28 Jul 2019 20:41:47 +0800 Subject: [PATCH 02/18] =?UTF-8?q?=E6=96=B9=E6=B3=95=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- quz/quz.js | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/quz/quz.js b/quz/quz.js index 624e7de..9a20c0d 100755 --- a/quz/quz.js +++ b/quz/quz.js @@ -8,7 +8,16 @@ * @returns {List} */ function dcate(A, B) { - /** Fill in here **/ + function getListLast (list) { + if (!list.tail) { + return list + } else { + return getListLast(list.tail) + } + } + let lastA = getListLast(A) + lastA.tail = B + return A } /** @@ -23,5 +32,19 @@ function dcate(A, B) { * @returns {List} */ function sub(L, start, len) { - /** Fill in here **/ + if (!L || (!start && start !== 0) || (!len && len !== 0)) { + throw new Error('缺少参数') + } + function getListByIndex (list, index, from = 0) { + if (from === index) { + return list + } else { + from ++ + return getListByIndex(list.tail, index, from) + } + } + let startList = getListByIndex(L, start) + let endList = getListByIndex(startList, (start + len - 1), start) + endList.tail = null + return startList } From 51828b70db0fc0094c8a5d1420ea51c859ec09ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=96=B0=E5=BC=BA?= Date: Sun, 28 Jul 2019 20:42:19 +0800 Subject: [PATCH 03/18] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=8A=9B=E5=87=BA?= =?UTF-8?q?=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/test.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/test.js b/test/test.js index 317a346..a1a7f6d 100755 --- a/test/test.js +++ b/test/test.js @@ -16,6 +16,9 @@ describe('unit test for quz.js', function () { it('should get the sublist consisting of LEN items from list L', function () { C.toString().should.equal('[ 19 8 7 3 2 ]'); sub(C, 3, 2).toString().should.equal('[ 3 2 ]'); + should.throws(() => sub(C, 3), function (err) { + return err.message.includes('缺少参数') + }); C.toString().should.equal('[ 19 8 7 3 2 ]'); }); }); From bae08f11baefc3a23d4dd7105669ca18cd9e85b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=96=B0=E5=BC=BA?= Date: Sun, 28 Jul 2019 20:52:58 +0800 Subject: [PATCH 04/18] single-run --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index f52bbce..75e5660 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,5 +10,8 @@ before_script: - "sh -e /etc/init.d/xvfb start" - sleep 3 # give xvfb some time to start +script: + - karma start karma.conf.js --single-run + before_install: npm install karma-cli -g \ No newline at end of file From 1537dccd1ac7866812c69f6fd428bf1cb7af5b7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=96=B0=E5=BC=BA?= Date: Sun, 28 Jul 2019 20:57:18 +0800 Subject: [PATCH 05/18] single-run --- .travis.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 75e5660..d841bbc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,13 @@ language: node_js node_js: - "6" - addons: chrome: stable - before_script: - "export DISPLAY=:99.0" - "sh -e /etc/init.d/xvfb start" - sleep 3 # give xvfb some time to start - -script: - - karma start karma.conf.js --single-run - before_install: - npm install karma-cli -g \ No newline at end of file + npm install karma-cli -g +script: + - karma start karma.conf.js --single-run \ No newline at end of file From 96503d4d5d6e367090b0ff3a15491b0c369790b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=96=B0=E5=BC=BA?= Date: Sun, 28 Jul 2019 21:00:22 +0800 Subject: [PATCH 06/18] travis --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index d841bbc..d5848f0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,6 @@ language: node_js node_js: - "6" -addons: - chrome: stable before_script: - "export DISPLAY=:99.0" - "sh -e /etc/init.d/xvfb start" From a1d23c2a3531d0fcdc8a76228a65e674b664a150 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=96=B0=E5=BC=BA?= Date: Sun, 28 Jul 2019 21:02:36 +0800 Subject: [PATCH 07/18] travis --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d5848f0..01e35a5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,6 @@ node_js: before_script: - "export DISPLAY=:99.0" - "sh -e /etc/init.d/xvfb start" - - sleep 3 # give xvfb some time to start before_install: npm install karma-cli -g script: From dff3ab0173c6461b5aec7ace982c6591d7e34ab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=96=B0=E5=BC=BA?= Date: Sun, 28 Jul 2019 21:05:06 +0800 Subject: [PATCH 08/18] travis --- .travis.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 01e35a5..5b56fb5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,8 @@ language: node_js node_js: - - "6" + - "10" before_script: - "export DISPLAY=:99.0" - "sh -e /etc/init.d/xvfb start" -before_install: - npm install karma-cli -g script: - - karma start karma.conf.js --single-run \ No newline at end of file + - karma start karma.conf.js --single-run From 8612282f27dc0fab81a229d4015aca83dcc83c73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=96=B0=E5=BC=BA?= Date: Sun, 28 Jul 2019 21:09:38 +0800 Subject: [PATCH 09/18] travis --- .travis.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5b56fb5..f52bbce 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,14 @@ language: node_js node_js: - - "10" + - "6" + +addons: + chrome: stable + before_script: - "export DISPLAY=:99.0" - "sh -e /etc/init.d/xvfb start" -script: - - karma start karma.conf.js --single-run + - sleep 3 # give xvfb some time to start + +before_install: + npm install karma-cli -g \ No newline at end of file From 8dad215f7241dece3cb3b8fa98e6179cf36700fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=96=B0=E5=BC=BA?= Date: Sun, 28 Jul 2019 21:09:58 +0800 Subject: [PATCH 10/18] travis --- karma.conf.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/karma.conf.js b/karma.conf.js index 432b55e..0747749 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -70,7 +70,7 @@ module.exports = function(config) { // Continuous Integration mode // if true, Karma captures browsers, runs the tests and exits - singleRun: false, + singleRun: true, // Concurrency level // how many browser should be started simultaneous From ac50a5e1c94f516aa1fda022327557845e36ea58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=96=B0=E5=BC=BA?= Date: Sun, 28 Jul 2019 21:12:53 +0800 Subject: [PATCH 11/18] travis --- karma.conf.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/karma.conf.js b/karma.conf.js index 0747749..6c44f94 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -58,14 +58,14 @@ module.exports = function(config) { // start these browsers // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - browsers: ['Chrome_without_security'], - - customLaunchers: { - Chrome_without_security: { - base: 'Chrome', - flags: ['--disable-web-security'] - } - }, + browsers: ['Chrome'], + + // customLaunchers: { + // Chrome_without_security: { + // base: 'Chrome', + // flags: ['--disable-web-security'] + // } + // }, // Continuous Integration mode From 09bd415590d688e81101c1462458a13b6aaf3ad8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=96=B0=E5=BC=BA?= Date: Sun, 28 Jul 2019 21:19:52 +0800 Subject: [PATCH 12/18] travis --- karma.conf.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/karma.conf.js b/karma.conf.js index 6c44f94..0747749 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -58,14 +58,14 @@ module.exports = function(config) { // start these browsers // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - browsers: ['Chrome'], - - // customLaunchers: { - // Chrome_without_security: { - // base: 'Chrome', - // flags: ['--disable-web-security'] - // } - // }, + browsers: ['Chrome_without_security'], + + customLaunchers: { + Chrome_without_security: { + base: 'Chrome', + flags: ['--disable-web-security'] + } + }, // Continuous Integration mode From ca7173fd7358a2120497f6b449d044c5c8676392 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=96=B0=E5=BC=BA?= Date: Sun, 28 Jul 2019 21:55:22 +0800 Subject: [PATCH 13/18] travis --- .travis.yml | 10 +++------- karma.conf.js | 13 +++---------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/.travis.yml b/.travis.yml index f52bbce..faeeb83 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,14 +1,10 @@ language: node_js node_js: - - "6" - -addons: - chrome: stable - + - "10" before_script: - "export DISPLAY=:99.0" - "sh -e /etc/init.d/xvfb start" - - sleep 3 # give xvfb some time to start - +script: + - karma start karma.conf.js --single-run before_install: npm install karma-cli -g \ No newline at end of file diff --git a/karma.conf.js b/karma.conf.js index 0747749..cefb1bd 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,5 +1,5 @@ // Karma configuration -// Generated on Fri Aug 04 2017 20:53:38 GMT+0800 (CST) +// Generated on Sun Jul 28 2019 13:08:08 GMT+0800 (GMT+08:00) module.exports = function(config) { config.set({ @@ -58,19 +58,12 @@ module.exports = function(config) { // start these browsers // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - browsers: ['Chrome_without_security'], - - customLaunchers: { - Chrome_without_security: { - base: 'Chrome', - flags: ['--disable-web-security'] - } - }, + browsers: ['Chrome'], // Continuous Integration mode // if true, Karma captures browsers, runs the tests and exits - singleRun: true, + singleRun: false, // Concurrency level // how many browser should be started simultaneous From 22cd5b05b660edfe86a22e6836cf7e04a1b9e8e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=96=B0=E5=BC=BA?= Date: Sun, 28 Jul 2019 22:15:15 +0800 Subject: [PATCH 14/18] travis --- .travis.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index faeeb83..caa1369 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,4 @@ before_script: - "export DISPLAY=:99.0" - "sh -e /etc/init.d/xvfb start" script: - - karma start karma.conf.js --single-run -before_install: - npm install karma-cli -g \ No newline at end of file + - karma start karma.conf.js --single-run \ No newline at end of file From bda700e4ea506fa1173c3b3ac0de16e6afbe32d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=96=B0=E5=BC=BA?= Date: Sun, 28 Jul 2019 22:28:51 +0800 Subject: [PATCH 15/18] =?UTF-8?q?=E5=8A=A0=E4=B8=AA=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- quz/quz.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/quz/quz.js b/quz/quz.js index 9a20c0d..f088b77 100755 --- a/quz/quz.js +++ b/quz/quz.js @@ -40,11 +40,11 @@ function sub(L, start, len) { return list } else { from ++ - return getListByIndex(list.tail, index, from) + return list.tail && getListByIndex(list.tail, index, from) } } let startList = getListByIndex(L, start) let endList = getListByIndex(startList, (start + len - 1), start) - endList.tail = null + endList && (endList.tail = null) return startList } From 11b1b475d5cab63628039268ab73195eb53e0424 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=96=B0=E5=BC=BA?= Date: Sun, 28 Jul 2019 22:39:47 +0800 Subject: [PATCH 16/18] =?UTF-8?q?=E8=BF=98=E5=8E=9F=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 12 +++++++++--- karma.conf.js | 13 ++++++++++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index caa1369..f52bbce 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,14 @@ language: node_js node_js: - - "10" + - "6" + +addons: + chrome: stable + before_script: - "export DISPLAY=:99.0" - "sh -e /etc/init.d/xvfb start" -script: - - karma start karma.conf.js --single-run \ No newline at end of file + - sleep 3 # give xvfb some time to start + +before_install: + npm install karma-cli -g \ No newline at end of file diff --git a/karma.conf.js b/karma.conf.js index cefb1bd..0747749 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,5 +1,5 @@ // Karma configuration -// Generated on Sun Jul 28 2019 13:08:08 GMT+0800 (GMT+08:00) +// Generated on Fri Aug 04 2017 20:53:38 GMT+0800 (CST) module.exports = function(config) { config.set({ @@ -58,12 +58,19 @@ module.exports = function(config) { // start these browsers // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - browsers: ['Chrome'], + browsers: ['Chrome_without_security'], + + customLaunchers: { + Chrome_without_security: { + base: 'Chrome', + flags: ['--disable-web-security'] + } + }, // Continuous Integration mode // if true, Karma captures browsers, runs the tests and exits - singleRun: false, + singleRun: true, // Concurrency level // how many browser should be started simultaneous From 52285cee53d2e31c3031a5bceed898eecc9e5d29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=96=B0=E5=BC=BA?= Date: Sun, 28 Jul 2019 22:51:36 +0800 Subject: [PATCH 17/18] travis --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f52bbce..aafbc82 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,10 +4,11 @@ node_js: addons: chrome: stable +services: + - xvfb before_script: - "export DISPLAY=:99.0" - - "sh -e /etc/init.d/xvfb start" - sleep 3 # give xvfb some time to start before_install: From 33b29d18b268a96eb6bb0ec4f5ea24084ed8e7ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=96=B0=E5=BC=BA?= Date: Mon, 29 Jul 2019 23:23:35 +0800 Subject: [PATCH 18/18] =?UTF-8?q?=E6=B7=BB=E5=8A=A0coverage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++- karma.conf.js | 8 ++++++-- package.json | 3 ++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index b512c09..3091757 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -node_modules \ No newline at end of file +node_modules +coverage \ No newline at end of file diff --git a/karma.conf.js b/karma.conf.js index 0747749..f829f0d 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -30,13 +30,17 @@ module.exports = function(config) { // preprocess matching files before serving them to the browser // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor preprocessors: { + 'quz/*.js': ['coverage'] + }, + coverageReporter: { + type : 'html', + dir : 'coverage/' }, - // test results reporter to use // possible values: 'dots', 'progress' // available reporters: https://npmjs.org/browse/keyword/karma-reporter - reporters: ['progress'], + reporters: ['progress', 'coverage'], // web server port diff --git a/package.json b/package.json index e80646a..895ecd0 100644 --- a/package.json +++ b/package.json @@ -20,8 +20,9 @@ }, "homepage": "https://github.com/FE-star/homework1#readme", "devDependencies": { - "karma": "^1.7.0", + "karma": "^1.7.1", "karma-chrome-launcher": "^2.2.0", + "karma-coverage": "^1.1.2", "karma-mocha": "^1.3.0", "mocha": "^3.5.0", "should": "^11.2.1"