Node.js +使用Jest自动执行测试

时间:2015-07-03 01:54:46

标签: javascript node.js unit-testing gulp jestjs

编辑(2015年2月7日)

发现我做错了什么。如果有人遇到同样的问题,请留下这个参考。检查我的答案。

我目前正在尝试使用Jest测试我的Node.js + React组件。我已经安装了jest-cli并在我的gulpfile上创建了一个任务来运行' npm test'。

我以某种方式按照此处的说明进行操作:http://www.undefinednull.com/2015/05/03/react-tdd-example-unit-testing-and-building-a-react-component-with-jest-gulp-and-react-test-utils/

然后去项目git repo找到如何配置其他东西。

当我运行命令' gulp test'然而,显然我得到的只是eslint代码验证。我根本不认为我的测试正在运行。

我的相关文件夹结构如下:

NSURLSessionConfiguration *defaultConfigObject = NSURLSessionConfiguration defaultSessionConfiguration];

NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration: defaultConfigObject delegate:self delegateQueue:nil];

NSURLSessionDownloadTask * downloadTask = [defaultSession downloadTaskWithRequest:request completionHandler:^(NSURL * __nullable location,
                                                                 NSURLResponse * __nullable response, NSError * __nullable error) {

NSData *data = [NSData dataWithContentsOfURL:location];

[[NSFileManager defaultManager] createFileAtPath:docPath contents:data attributes:nil];

if ([[NSFileManager defaultManager] fileExistsAtPath:docPath]) {

NSDictionary *notificationDic = [[NSDictionary alloc] initWithObjectsAndKeys:docPath,@"docPath", item, @"item", nil];

[[NSNotificationCenter defaultCenter] postNotificationName: @"openFile" object:nil userInfo:notificationDic];

}

}];
[downloadTask resume];

还有很多其他的东西,但我不相信它们是相关的。

我的Search.js

/__tests__
    searchComponent-spec.js
/src
    /components
        /Search
            Search.js
package.json
gulpfile.babel.js

我的searchComponent-spec.js:

/*! React Starter Kit | MIT License | http://www.reactstarterkit.com/ */

import React, { PropTypes } from 'react';
import styles from './Search.less';
import withStyles from '../../decorators/withStyles';
import Link from '../../utils/Link';

@withStyles(styles)
class Search {

  static contextTypes = {
    onSetTitle: PropTypes.func.isRequired
  };

  render() {
    let title = 'Pesquisa de desenvolvedores';
    this.context.onSetTitle(title);
    return (
      <div className="Search">
        <div className="Search-container">
          <a className="Search-brand" href="/" onClick={Link.handleClick}>
            <span className="Search-brandTxt">Dev-Shop</span>
          </a>
          <div className="Search-banner">
            <h1 className="Search-bannerTitle">Loja de desenvolvedores</h1>
          </div>
        </div>
      </div>
    );
  }

}

export default Search;

任何人都知道为什么我的测试可能没有运行? 非常感谢

1 个答案:

答案 0 :(得分:0)

我发现了问题。我的package.json有一个条目:

  "jest": {
    "rootDir": "./src",
    "scriptPreprocessor": "../preprocessor.js",
    "unmockedModulePathPatterns": [
      "../node_modules/react"
    ]
  },

我搞砸的是我的测试文件夹不在那里声明的同一个rootDir上,它位于它的父级,将 tests 文件夹移动到我的src文件夹修复了它。