我认为Karma正在进行两次测试

时间:2017-08-05 14:31:58

标签: phantomjs karma-jasmine karma-webpack

我正在尝试使用karma(在PhantomJS2上),茉莉花和酶来测试我的反应应用程序。我注意到我的一些测试失败了。这似乎是因为每个块被调用两次(我通过在所有块中放置打印并且它们都打印两次来确认这一点)。我找到了解决方案,但似乎都没有。我将尽可能多地包含细节。

这是我的karma.config文件:

files: [
      { pattern: 'test/**/*.tsx' }
    ],

我也尝试了这些,但这与上面的结果相同:

files: [
      { pattern: 'test/**/*.tsx', watched: false, served: true, included: true }
    ],

我也试过这个,但这导致业力破裂:

files: [
      { pattern: 'test/**/*.tsx', included: false }
    ],

这里有一个我运行两次的块的示例(虽然如果运行则会通过,但是关闭的长度导致其他测试失败,我注释掉了):

it('renders the items', () => {
    const wrapper = mount(<PortfolioList />);
    const length = 5;
    const items = fillArray(length);
    // tslint:disable-next-line:no-console
    console.log('LENGTH: ' + items.length); //OUTPUTS(twice): LENGTH: 10
    wrapper.setState({results: items});
    expect(wrapper.find('tbody').children().length).toBe(length);
  });

这是fillArray,甚至认为它被调用了两次。在我的例子中,它不应该返回两次大小为5的数组吗?为什么是10?:

function fillArray(length: number) {
  const ary = new Array(length);
  for (let i = 0; i < length; i++) {
    ary.push(item);
  }
  return ary;
}

以下是我觉得相关的图片(粘贴在一起):

enter image description here

0 个答案:

没有答案