通过CI的命令行运行Jasmine测试(耦合到DOM/jquery等)

通过CI的命令行运行Jasmine测试(耦合到DOM/jquery等),jasmine,continuous-integration,jestjs,teamcity,jest-puppeteer,Jasmine,Continuous Integration,Jestjs,Teamcity,Jest Puppeteer,我们有一组Jasmine测试,它们在本地web服务器上成功运行 我们希望在TeamCity构建过程中从命令行运行这些测试,而无需启动Web服务器 使用--disable web security标志打开带有chrome的html文件会导致 加载模块脚本失败:服务器以错误响应 非JavaScript MIME类型为“”。执行严格的MIME类型检查 对于符合HTML规范的模块脚本 可能是因为脚本引用SpecRunner.html文件中的type=“module” <script src="

我们有一组Jasmine测试,它们在本地web服务器上成功运行

我们希望在TeamCity构建过程中从命令行运行这些测试,而无需启动Web服务器

使用--disable web security标志打开带有chrome的html文件会导致

加载模块脚本失败:服务器以错误响应 非JavaScript MIME类型为“”。执行严格的MIME类型检查 对于符合HTML规范的模块脚本

可能是因为脚本引用SpecRunner.html文件中的type=“module”

<script src="../src/js/App/app.js" type="module"></script>

Jasmine测试与DOM/jQuery耦合,因此它们需要在浏览器中运行。SpecRunner html页面包含type=“module”的脚本引用

我们如何在TeamCity构建期间运行这些测试,并在测试失败时使构建失败


谢谢。

这是我的解决方案。我们已经在使用jest进行react测试并说

如果您使用的是Jasmine或类似Jasmine的API(例如Mocha), 玩笑应该是兼容的,这使得它不那么复杂 迁移到

  • npm安装jest Puppeter jest Puppeter http服务器

    • jest:使用Jasmine API运行测试
    • Puppeter:在无头chrome浏览器中运行测试
    • http服务器:用于导航到jasmine spec runner页面的本地Web服务器
    • jest Puppeter:配置在运行测试之前启动本地服务器,然后停止
  • 添加jest-puppeter-config.json以启动服务器,如

  • Jest Puppeter集成了一项功能,可在以下情况下启动服务器: 运行测试套件。测试时,它会自动关闭服务器 完成了

  • 添加一个jest Puppeter测试,导航到Jasmine SpecRunner页面并断言没有失败

  • 更新jest配置

  • 创建npm脚本以运行jest测试,然后在浏览器中运行Jasmine测试
  • 此时,应该能够在本地或构建服务器上从命令行运行浏览器Jasmine测试

    这是一个屏幕截图,显示了本地和TeamCity上的文件和测试运行结果

    我们如何在TeamCity构建期间运行这些测试并使构建失败 如果有任何测试失败

    这个解决方案使我们能够以最小的工作量(不必更新测试)恢复大约一百个旧式浏览器耦合的Jasmine测试,作为构建的一部分


    请随意提出备选方案。

    这是我的解决方案。我们已经在使用jest进行react测试并说

    如果您使用的是Jasmine或类似Jasmine的API(例如Mocha), 玩笑应该是兼容的,这使得它不那么复杂 迁移到

  • npm安装jest Puppeter jest Puppeter http服务器

    • jest:使用Jasmine API运行测试
    • Puppeter:在无头chrome浏览器中运行测试
    • http服务器:用于导航到jasmine spec runner页面的本地Web服务器
    • jest Puppeter:配置在运行测试之前启动本地服务器,然后停止
  • 添加jest-puppeter-config.json以启动服务器,如

  • Jest Puppeter集成了一项功能,可在以下情况下启动服务器: 运行测试套件。测试时,它会自动关闭服务器 完成了

  • 添加一个jest Puppeter测试,导航到Jasmine SpecRunner页面并断言没有失败

  • 更新jest配置

  • 创建npm脚本以运行jest测试,然后在浏览器中运行Jasmine测试
  • 此时,应该能够在本地或构建服务器上从命令行运行浏览器Jasmine测试

    这是一个屏幕截图,显示了本地和TeamCity上的文件和测试运行结果

    我们如何在TeamCity构建期间运行这些测试并使构建失败 如果有任何测试失败

    这个解决方案使我们能够以最小的工作量(不必更新测试)恢复大约一百个旧式浏览器耦合的Jasmine测试,作为构建的一部分


    请随意提出备选方案。

    因为在打开本地html文件时没有涉及web服务器,所以不确定如何添加mime类型。也许我们应该咬紧牙关,启动一个web服务器,在浏览器中运行测试,检查控制台消息,看看在构建过程中是否有任何失败。因为打开本地html文件时没有涉及web服务器,所以不确定如何添加mime类型。也许我们应该咬紧牙关,启动一个web服务器,在浏览器中运行测试,检查控制台消息,看看在构建过程中是否有任何失败。