forked from sheetjs/docs.sheetjs.com
		
	
		
			
	
	
		
			112 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			112 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|  | --- | ||
|  | sidebar_position: 6 | ||
|  | hide_table_of_contents: true | ||
|  | --- | ||
|  | 
 | ||
|  | # Testing
 | ||
|  | 
 | ||
|  | import Tabs from '@theme/Tabs'; | ||
|  | import TabItem from '@theme/TabItem'; | ||
|  | 
 | ||
|  | <Tabs> | ||
|  |   <TabItem value="nodejs" label="NodeJS"> | ||
|  | 
 | ||
|  | `make test` will run the node-based tests.  By default it runs tests on files in | ||
|  | every supported format.  To test a specific file type, set `FMTS` to the format | ||
|  | you want to test.  Feature-specific tests are available with `make test_misc` | ||
|  | 
 | ||
|  | ```bash | ||
|  | $ make test_misc   # run core tests | ||
|  | $ make test        # run full tests | ||
|  | $ make test_xls    # only use the XLS test files | ||
|  | $ make test_xlsx   # only use the XLSX test files | ||
|  | $ make test_xlsb   # only use the XLSB test files | ||
|  | $ make test_xml    # only use the XML test files | ||
|  | $ make test_ods    # only use the ODS test files | ||
|  | ``` | ||
|  | 
 | ||
|  | To enable all errors, set the environment variable `WTF=1`: | ||
|  | 
 | ||
|  | ```bash | ||
|  | $ make test        # run full tests | ||
|  | $ WTF=1 make test  # enable all error messages | ||
|  | ``` | ||
|  | 
 | ||
|  | `flow` and `eslint` checks are available: | ||
|  | 
 | ||
|  | ```bash | ||
|  | $ make lint        # eslint checks | ||
|  | $ make flow        # make lint + Flow checking | ||
|  | $ make tslint      # check TS definitions | ||
|  | ``` | ||
|  | 
 | ||
|  |   </TabItem> | ||
|  |   <TabItem value="browser" label="Browser"> | ||
|  | 
 | ||
|  | The core in-browser tests are available at `tests/index.html` within this repo. | ||
|  | Start a local server and navigate to that directory to run the tests. | ||
|  | `make ctestserv` will start a server on port 8000. | ||
|  | 
 | ||
|  | `make ctest` will generate the browser fixtures.  To add more files, edit the | ||
|  | `tests/fixtures.lst` file and add the paths. | ||
|  | 
 | ||
|  | To run the full in-browser tests, clone the repo for | ||
|  | [`oss.sheetjs.com`](https://github.com/SheetJS/SheetJS.github.io) and replace | ||
|  | the `xlsx.js` file (then open a browser window and go to `stress.html`): | ||
|  | 
 | ||
|  | ```bash | ||
|  | $ cp xlsx.js ../SheetJS.github.io | ||
|  | $ cd ../SheetJS.github.io | ||
|  | $ simplehttpserver # or "python -mSimpleHTTPServer" or "serve" | ||
|  | $ open -a Chromium.app http://localhost:8000/stress.html | ||
|  | ``` | ||
|  | 
 | ||
|  |   </TabItem> | ||
|  |   <TabItem value="deno" label="Deno"> | ||
|  | 
 | ||
|  | `make test-deno` will run the full Deno test suite and `make test-deno_misc` | ||
|  | will run the smaller feature-specific tests. | ||
|  | 
 | ||
|  |   </TabItem> | ||
|  | </Tabs> | ||
|  | 
 | ||
|  | ### Tested Environments
 | ||
|  | 
 | ||
|  | <details> | ||
|  |   <summary>(click to show)</summary> | ||
|  | 
 | ||
|  |  - NodeJS `0.8`, `0.10`, `0.12`, `4.x`, `5.x`, `6.x`, `7.x`, `8.x` | ||
|  |  - IE 6/7/8/9/10/11 (IE 6-9 require shims) | ||
|  |  - Chrome 24+ (including Android 4.0+) | ||
|  |  - Safari 6+ (iOS and Desktop) | ||
|  |  - Edge 13+, FF 18+, and Opera 12+ | ||
|  | 
 | ||
|  | Tests utilize the mocha testing framework. | ||
|  | 
 | ||
|  |  - <https://saucelabs.com/u/sheetjs> for XLS\* modules using Sauce Labs | ||
|  | 
 | ||
|  | The test suite also includes tests for various time zones.  To change | ||
|  | the timezone locally, set the TZ environment variable: | ||
|  | 
 | ||
|  | ```bash | ||
|  | $ env TZ="Asia/Kolkata" WTF=1 make test_misc | ||
|  | ``` | ||
|  | 
 | ||
|  | </details> | ||
|  | 
 | ||
|  | ### Test Files
 | ||
|  | 
 | ||
|  | Test files are housed in [another repo](https://github.com/SheetJS/test_files). | ||
|  | 
 | ||
|  | Running `make init` will refresh the `test_files` submodule and get the files. | ||
|  | Note that this requires `svn`, `git`, `hg` and other commands that may not be | ||
|  | available.  If `make init` fails, please download the latest version of the test | ||
|  | files snapshot from [the repo](https://github.com/SheetJS/test_files/releases) | ||
|  | 
 | ||
|  | #### Latest Snapshot
 | ||
|  | 
 | ||
|  | <http://github.com/SheetJS/test_files/releases/download/20170409/test_files.zip> | ||
|  | 
 | ||
|  | (download and unzip to the `test_files` subdirectory) | ||
|  | 
 |