Unit testing 将html与TestCularJS集成时出错
如何将(html)fixture与TestCular集成?对执行基于DOM的测试有什么建议吗?或者它是反模式的 目标:我试图测试一个自定义模块,该模块解析DOM树并创建一个新的数据结构。DOM树可以是动态的(就像html/markdown编辑器的内容),因此不适合进行端到端测试 问题:我试图使用jasmine jquery进行DOM测试,在testacular.conf.js中,我有一个部分允许将html文件加载到浏览器中Unit testing 将html与TestCularJS集成时出错,unit-testing,continuous-integration,jasmine,fixtures,Unit Testing,Continuous Integration,Jasmine,Fixtures,如何将(html)fixture与TestCular集成?对执行基于DOM的测试有什么建议吗?或者它是反模式的 目标:我试图测试一个自定义模块,该模块解析DOM树并创建一个新的数据结构。DOM树可以是动态的(就像html/markdown编辑器的内容),因此不适合进行端到端测试 问题:我试图使用jasmine jquery进行DOM测试,在testacular.conf.js中,我有一个部分允许将html文件加载到浏览器中 // list of files / patterns to load
// list of files / patterns to load in the browser
files = [
JASMINE,
JASMINE_ADAPTER,
'test/spec/**/*.js',
'test/fixtures/*.html' **/* Needs to be included here to be served */**
];
但是,在命令行上的测试运行程序中,当我删除html装置时(甚至在我编写任何jasmine jquery代码来加载装置之前),我会收到以下错误消息:
Chrome 22.0**错误**
未捕获语法错误:意外标记
编辑:问同样问题的另一种方式:如何让TestCular服务于html而不破坏测试运行程序
正如我前面提到的,我需要在配置中包含'test/fixtures/*.html',但测试运行程序刚刚启动。当前版本的TestCularJS无法支持这一点。 然而,testacularjs(Vojta Jina)的作者建议我使用代理解决方案,通过不同的web服务器提供html来解决这个问题
- 首先通过运行如下命令来运行Web服务器
python-msimplehttpserver 3502&beforeEach(function(){ jasmine.getFixtures().fixturesPath = '/fixtures/test/fixtures'; });
- 将夹具文件放到适当的位置。我的文件是test/fixtures/first.html 现在你应该可以参观了[http://localhost:3502/test/fixtures/first.html]并在检查页面源代码时查看标记
- 编辑testacular.conf.js以添加配置块
proxies = { '/fixtures' : 'http://localhost:3502/' };
- 编辑jasmine单元测试,使其具有如下所示的块
beforeEach(function(){ jasmine.getFixtures().fixturesPath = '/fixtures/test/fixtures'; });
files = [
JASMINE,
JASMINE_ADAPTER,
'test/spec/**/*.js',
{
pattern: 'test/fixtures/*.html',
watched: true,
included: false,
served: true
}
];
我刚刚试过,效果很好。很好,一直在等待!+1,但至少在最近的版本中,您还需要编辑包含的预压缩程序的默认列表,以便不包含html2js。