集成单元测试&覆盖率报告

This commit is contained in:
Wu Jian Ping 2022-07-21 17:33:47 +08:00
parent 7f6cac9e09
commit 12aee0894d
10 changed files with 108 additions and 1467 deletions

View File

@ -4,12 +4,14 @@ module.exports = {
commonjs: true, commonjs: true,
es2021: true es2021: true
}, },
extends: [
'standard'
],
parserOptions: { parserOptions: {
ecmaVersion: 'latest' ecmaVersion: 'latest'
}, },
rules: { extends: [
'standard'
],
globals: {
describe: true,
it: true
} }
} }

View File

@ -0,0 +1,5 @@
{
"reporter": "spec",
"timeout": 60000,
"exit": true
}

View File

@ -0,0 +1,5 @@
{
"all": true,
"report-dir": "./coverage/",
"reporter": ["text", "html"]
}

View File

@ -8,18 +8,6 @@
### 缓存整个 `xdb` 数据 ### 缓存整个 `xdb` 数据
```js
const Ip2Region = require('./')
const ip2region = new Ip2Region()
// 注意:这边是同步代码,生产环境建议只执行一次初始化, 并且数据是存放在内存中的
ip2region.load('../../data/ip2region.xdb')
const info = ip2region.search('202.97.77.50')
```
## 查询测试 ## 查询测试
## bench 测试 ## bench 测试

File diff suppressed because it is too large Load Diff

View File

@ -1,21 +1,28 @@
{ {
"name": "ip2region", "name": "ip2region",
"version": "1.0.0", "version": "2.0.0",
"description": "ip2region", "description": "official nodejs client of ip2region",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"test": "node ./tests/test.js" "lint": "eslint ./index.js",
"test": "mocha ./tests/function.test.js",
"coverage": "nyc npm run test",
"benchmark": "node ./tests/benchmark.js"
}, },
"author": "", "author": "Wu Jian Ping",
"license": "ISC", "license": "ISC",
"devDependencies": { "devDependencies": {
"@types/chai": "^4.3.1",
"@types/node": "^18.0.6", "@types/node": "^18.0.6",
"benchmark": "^2.1.4", "benchmark": "^2.1.4",
"chai": "^4.3.6",
"eslint": "^8.20.0", "eslint": "^8.20.0",
"eslint-config-standard": "^17.0.0", "eslint-config-standard": "^17.0.0",
"eslint-plugin-import": "^2.26.0", "eslint-plugin-import": "^2.26.0",
"eslint-plugin-n": "^15.2.4", "eslint-plugin-n": "^15.2.4",
"eslint-plugin-promise": "^6.0.0" "eslint-plugin-promise": "^6.0.0",
"mocha": "^10.0.0",
"nyc": "^15.1.0"
}, },
"engines": { "engines": {
"node": ">=8.0.0" "node": ">=8.0.0"

49
binding/nodejs/test.js Normal file
View File

@ -0,0 +1,49 @@
const path = require('path')
const Searcher = require('.')
const dbPath = path.join(__dirname, '..', '..', '..', 'data', 'ip2region.xdb')
const buffer = Searcher.loadContentFromFile(dbPath)
const searcher1 = Searcher.newWithBuffer(buffer)
const vectorIndex = Searcher.loadVectorIndexFromFile(dbPath)
const searcher2 = Searcher.newWithVectorIndex(dbPath, vectorIndex)
const searcher3 = Searcher.newWithFileOnly(dbPath)
;(async () => {
const data1 = await Promise
.all([
searcher1.search('202.97.77.50'),
searcher1.search('218.4.167.70'),
searcher1.search('112.31.187.151'),
searcher1.search('202.98.17.164'),
searcher1.search('170.148.132.136'),
searcher1.search('194.138.202.210')
])
console.log(data1)
const data2 = await Promise
.all([
searcher2.search('202.97.77.50'),
searcher2.search('218.4.167.70'),
searcher2.search('112.31.187.151'),
searcher2.search('202.98.17.164'),
searcher2.search('170.148.132.136'),
searcher2.search('194.138.202.210')
])
console.log(data2)
const data3 = await Promise
.all([
searcher3.search('202.97.77.50'),
searcher3.search('218.4.167.70'),
searcher3.search('112.31.187.151'),
searcher3.search('202.98.17.164'),
searcher3.search('170.148.132.136'),
searcher3.search('194.138.202.210')
])
console.log(data3)
})()

View File

@ -1,7 +1,8 @@
const Benchmark = require('benchmark') const Benchmark = require('benchmark')
const path = require('path')
const Searcher = require('..') const Searcher = require('..')
const dbPath = '../../../data/ip2region.xdb' const dbPath = path.join(__dirname, '..', '..', '..', 'data', 'ip2region.xdb')
const buffer = Searcher.loadContentFromFile(dbPath) const buffer = Searcher.loadContentFromFile(dbPath)
const seacher = Searcher.newWithBuffer(buffer) const seacher = Searcher.newWithBuffer(buffer)

View File

@ -0,0 +1,29 @@
const { expect } = require('chai')
const path = require('path')
const Searcher = require('..')
const dbPath = path.join(__dirname, '..', '..', '..', 'data', 'ip2region.xdb')
const buffer = Searcher.loadContentFromFile(dbPath)
const searcher1 = Searcher.newWithBuffer(buffer)
const vectorIndex = Searcher.loadVectorIndexFromFile(dbPath)
const searcher2 = Searcher.newWithVectorIndex(dbPath, vectorIndex)
const searcher3 = Searcher.newWithFileOnly(dbPath)
describe('ip2region', () => {
it('#newWithFileOnly', async () => {
const d = await searcher3.search('218.4.167.70')
expect(d).equal('中国|0|江苏省|苏州市|电信')
})
it('#newWithVectorIndex', async () => {
const d = await searcher2.search('218.4.167.70')
expect(d).equal('中国|0|江苏省|苏州市|电信')
})
it('#newWithBuffer', async () => {
const d = await searcher1.search('218.4.167.70')
expect(d).equal('中国|0|江苏省|苏州市|电信')
})
})

View File

@ -1,49 +0,0 @@
const path = require('path')
const Searcher = require('..')
const dbPath = path.join(__dirname, '..', '..', '..', 'data', 'ip2region.xdb')
const buffer = Searcher.loadContentFromFile(dbPath)
const seacher1 = Searcher.newWithBuffer(buffer)
const vectorIndex = Searcher.loadVectorIndexFromFile(dbPath)
const seacher2 = Searcher.newWithVectorIndex(dbPath, vectorIndex)
const seacher3 = Searcher.newWithFileOnly(dbPath)
;(async () => {
const data1 = await Promise
.all([
seacher1.search('202.97.77.50'),
seacher1.search('218.4.167.70'),
seacher1.search('112.31.187.151'),
seacher1.search('202.98.17.164'),
seacher1.search('170.148.132.136'),
seacher1.search('194.138.202.210')
])
console.log(data1)
const data2 = await Promise
.all([
seacher2.search('202.97.77.50'),
seacher2.search('218.4.167.70'),
seacher2.search('112.31.187.151'),
seacher2.search('202.98.17.164'),
seacher2.search('170.148.132.136'),
seacher2.search('194.138.202.210')
])
console.log(data2)
const data3 = await Promise
.all([
seacher3.search('202.97.77.50'),
seacher3.search('218.4.167.70'),
seacher3.search('112.31.187.151'),
seacher3.search('202.98.17.164'),
seacher3.search('170.148.132.136'),
seacher3.search('194.138.202.210')
])
console.log(data3)
})()