2015-07-20 12:42:12 +08:00
|
|
|
# Testing node-oracledb
|
|
|
|
|
|
|
|
*Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.*
|
|
|
|
|
|
|
|
You may not use the identified files except in compliance with the Apache
|
|
|
|
License, Version 2.0 (the "License.")
|
|
|
|
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0.
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
|
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
|
2016-03-24 14:09:53 +08:00
|
|
|
The node-oracledb test suite uses 'mocha', 'should' and 'async'.
|
2015-07-20 15:56:29 +08:00
|
|
|
See LICENSE.md for relevant licenses.
|
|
|
|
|
2015-11-15 05:40:08 +08:00
|
|
|
## 1. Preparations for running tests
|
2015-07-20 12:42:12 +08:00
|
|
|
|
2015-11-15 05:40:08 +08:00
|
|
|
### 1.1 Create a working directory
|
2015-07-20 12:42:12 +08:00
|
|
|
|
|
|
|
```
|
2016-03-24 14:09:53 +08:00
|
|
|
mkdir <some-directory>
|
2015-07-20 12:42:12 +08:00
|
|
|
cd <some-directory>
|
|
|
|
```
|
|
|
|
|
2015-11-15 05:40:08 +08:00
|
|
|
### 1.2 Install node-oracledb
|
2015-07-20 12:42:12 +08:00
|
|
|
|
|
|
|
See [INSTALL](https://github.com/oracle/node-oracledb/blob/master/INSTALL.md)
|
2015-07-20 15:56:29 +08:00
|
|
|
for installation requirements and more details.
|
2015-07-20 12:42:12 +08:00
|
|
|
|
|
|
|
Install with:
|
|
|
|
|
|
|
|
```
|
|
|
|
npm install oracledb
|
|
|
|
```
|
|
|
|
|
|
|
|
Alternatively use a GitHub clone:
|
|
|
|
|
|
|
|
```
|
|
|
|
git clone https://github.com/oracle/node-oracledb.git
|
|
|
|
npm install node-oracledb
|
|
|
|
```
|
|
|
|
|
2015-11-15 05:40:08 +08:00
|
|
|
### 1.3 Install test-dependent modules
|
2015-07-20 12:42:12 +08:00
|
|
|
|
2016-03-24 14:09:53 +08:00
|
|
|
The test suite uses [mocha](https://www.npmjs.com/package/mocha),
|
|
|
|
[async](https://www.npmjs.com/package/async) and
|
|
|
|
[should](https://www.npmjs.com/package/should).
|
2015-07-20 12:42:12 +08:00
|
|
|
|
|
|
|
```
|
2016-03-24 14:09:53 +08:00
|
|
|
cd <some-directory>/node_modules/oracledb
|
2015-11-15 05:40:08 +08:00
|
|
|
npm install
|
2015-07-20 12:42:12 +08:00
|
|
|
```
|
|
|
|
|
2015-11-15 05:40:08 +08:00
|
|
|
Note: Running `npm install` within oracledb/ directory will recompile
|
|
|
|
oracledb module and install all its dependent modules which are listed
|
2016-03-24 14:09:53 +08:00
|
|
|
in `devDependencies` field in `package.json` file. So 'mocha', 'async'
|
2015-11-15 05:40:08 +08:00
|
|
|
and 'should' modules are installed by this command.
|
2015-07-20 12:42:12 +08:00
|
|
|
|
2015-11-15 05:40:08 +08:00
|
|
|
### 1.4 Configure Database credentials
|
2015-08-17 14:19:36 +08:00
|
|
|
|
2016-03-24 14:09:53 +08:00
|
|
|
The database credentials for node-oracledb test suite are defined in dbconfig.js file.
|
2016-02-29 10:20:39 +08:00
|
|
|
You can set the credentials via environment variables or dbconfig.js file.
|
2016-03-24 14:09:53 +08:00
|
|
|
Change the credentials to a user who has privileges to connect and create tables.
|
2015-07-20 12:42:12 +08:00
|
|
|
|
|
|
|
```
|
2016-02-29 10:20:39 +08:00
|
|
|
vi <some-directory>/node_modules/oracledb/test/dbconfig.js
|
2015-07-20 12:42:12 +08:00
|
|
|
```
|
|
|
|
|
2015-07-20 15:56:29 +08:00
|
|
|
```javascript
|
|
|
|
module.exports = {
|
2015-08-17 14:19:36 +08:00
|
|
|
user : process.env.NODE_ORACLEDB_USER || "hr",
|
|
|
|
password : process.env.NODE_ORACLEDB_PASSWORD || "welcome",
|
|
|
|
connectString : process.env.NODE_ORACLEDB_CONNECTIONSTRING || "localhost/orcl",
|
|
|
|
externalAuth : process.env.NODE_ORACLEDB_EXTERNALAUTH ? true : false
|
2015-07-20 15:56:29 +08:00
|
|
|
};
|
|
|
|
```
|
2015-07-20 12:42:12 +08:00
|
|
|
|
2015-07-20 15:56:29 +08:00
|
|
|
To use external authentication, set the `externalAuth` property to
|
|
|
|
`true`. Also make sure Oracle Database and the authentication service
|
|
|
|
have been appropriately configured. See
|
|
|
|
[Documentation for External Authentication](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#extauth)
|
|
|
|
for more details.
|
2015-07-20 12:42:12 +08:00
|
|
|
|
2015-11-15 05:40:08 +08:00
|
|
|
## 2. Running tests
|
2015-07-20 12:42:12 +08:00
|
|
|
|
2015-11-15 05:40:08 +08:00
|
|
|
### 2.1 Run the complete test suite
|
|
|
|
|
|
|
|
#### On Unix-like systems
|
2015-07-20 12:42:12 +08:00
|
|
|
|
|
|
|
```
|
2016-03-24 14:09:53 +08:00
|
|
|
cd <some-directory>/node_modules/oracledb
|
2015-07-20 12:42:12 +08:00
|
|
|
npm test
|
|
|
|
```
|
|
|
|
|
2015-11-15 05:40:08 +08:00
|
|
|
This calls the `test` script defined in `oracledb/package.json`.
|
|
|
|
|
|
|
|
#### On Windows
|
|
|
|
|
|
|
|
```
|
2016-03-24 14:09:53 +08:00
|
|
|
cd <some-directory>/node_modules/oracledb
|
2015-11-15 05:40:08 +08:00
|
|
|
npm run-script testWindows
|
|
|
|
```
|
2015-07-20 12:42:12 +08:00
|
|
|
|
2015-11-15 05:40:08 +08:00
|
|
|
This calls the `testWindows` script defined in `oracledb/package.json`.
|
2016-03-24 14:09:53 +08:00
|
|
|
See [npm scripts](https://docs.npmjs.com/misc/scripts) for more infomation
|
2015-11-15 06:15:28 +08:00
|
|
|
about how npm handles the "scripts" field of `package.json`.
|
2015-07-20 12:42:12 +08:00
|
|
|
|
2015-11-15 05:40:08 +08:00
|
|
|
### 2.2 Run specified test(s)
|
2015-07-20 12:42:12 +08:00
|
|
|
|
|
|
|
```
|
2016-03-24 14:09:53 +08:00
|
|
|
cd <some-directory>/node_modules/oracledb
|
2015-11-15 05:40:08 +08:00
|
|
|
<mocha-executable-file-directory>/mocha test/<test-names>
|
2015-07-20 12:42:12 +08:00
|
|
|
```
|
|
|
|
|
|
|
|
See [mochajs.org](http://mochajs.org/) for more information on running tests with mocha.
|
|
|
|
|
2015-11-15 06:15:28 +08:00
|
|
|
## 3. Adding Tests
|
2016-03-24 14:09:53 +08:00
|
|
|
See [CONTRIBUTING](https://github.com/oracle/node-oracledb/blob/master/CONTRIBUTING.md)
|
2015-11-15 05:40:08 +08:00
|
|
|
for general information on contribution requirements.
|
2015-07-20 12:42:12 +08:00
|
|
|
|
|
|
|
For easy correlation between results and test code, each test is
|
|
|
|
assigned a number. The following number ranges have been chosen:
|
|
|
|
|
|
|
|
- 1 - 20 are reserved for basic functional tests
|
|
|
|
- 21 - 50 are reserved for data type supporting tests
|
|
|
|
- 51 onwards are for other tests
|
2015-08-17 14:19:36 +08:00
|
|
|
|
2015-11-15 06:15:28 +08:00
|
|
|
## 4. Test List
|
2015-08-17 14:19:36 +08:00
|
|
|
|
2015-11-15 06:15:28 +08:00
|
|
|
See `test/list.txt` for the list of existing tests.
|