通过与node.js开发工具通过calmjs框架集成到python环境中,帮助开发作为python包一部分提供的javascript代码的包。

calmjs.dev的Python项目详细描述


calmjs.dev

帮助开发javascript代码的包将作为 通过与node.js开发集成的python包的一部分 通过calmjs框架将工具放入python环境中。 https://travis-ci.org/calmjs/calmjs.dev.svg?分支机构=2.3.0https://ci.appveyor.com/api/projects/status/0mxtiaf2j98w5fy6/branch/2.3.0?SVG=truehttps://coveralls.io/repos/github/calmjs/calmjs.dev/badge.svg?分支=2.3.0

简介

python包可以包含任意资源文件,其中可以包括 javascript源代码。这种情况通常出现在 提供前端功能,增强用户体验 需要与运行在 由给定包提供的服务器。为了方便 测试那些来自那些python包的javascript代码,通常 node.js 通常使用包和框架来实现这一点。

通常,为了管理这种依赖关系,通常需要两个 或更多单独的包管理系统,这些系统不能正确识别 相互之间的,导致经常累赘的联系或不必要的 给定系统上安装的包的副本。而且, node.js/javascript包依赖项的配置文件, 以及构件的构建和javascript的测试 由这些python包提供的是特定于给定项目的 而且通常不便于携带。如果需要多个这样的包 下游的python项目,脚本和定义文件 工件的构建和测试通常必须手动进行 修改,这通常是一个非常严重和容易出错的过程。

然而,calmjs框架为python包提供了 声明要导出的javascript模块,以及这个包, calmjs.dev 提供了使用这些信息的方法,以便 在这些python包中声明的javascript测试可以是 无需手动构造和验证 源和测试文件,不管它们在 环境,只要通过calmjs正确声明 框架。然后测试可以针对javascript源运行 由python包通过工件生成提供 框架,或者针对包含 功能。当然,对工件生成的支持 框架需要与calmjs框架集成。目前, 使用 calmjs.rjs 支持AMD工件的生成,并且 支持生成 webpack 工件通过 calmjs.webpack 包。

功能

  • 提供一组常用的开发工具 用于测试javascript代码。简而言之,它们包括:

    < DL>
    业力

    运行包中包含的测试的测试运行程序 包含的javascript代码。

    摩卡

    用于为node.js或 浏览器。

    幻影

    一个带有javascript api的无头webkit,能够与 karma;这允许运行集成javascript测试。

    sinon

    一组用于javascript的spies、stub和mock,用于处理 单元测试框架。

    再加上其他的集成包,它们可以相互协作, 即与业力集成的各种业力包。 有关将通过 calmjs 框架,命令可以是 安装此包后调用以查看 包.json 进入python环境。有关安装,请参阅 以下章节。

  • 通过使用 calmjs 模块注册表系统,python 包可以声明可以通过 将它们构建到可部署工件中的特定工具链。这个 calmjs.dev 包为生成 通过业力测试执行测试的配置文件 赛跑运动员.

    这通常是通过运行时系统来使用的。

安装

因为calmjs.dev的目标是集成node.js开发工具 在python环境中,node.js和npm都需要 在目标安装环境中可用;如果不是 已安装请遵循node.js的安装步骤 适用于目标操作系统/环境/平台。

当然,由于这是通过 calmjs 实现的,因此需要 在目标安装环境中可用;但是 只需从pypi安装 calmjs.dev pip 即可实现。

$ pip install calmjs.dev

替代安装方法(针对开发人员、高级用户)

对于最新的特性,calmjs.dev的开发仍在进行中 并且错误修复,开发版本可能是可取的。然而,在 为了使源安装正常工作,calmjs 必须在当前环境中为所有 正确生成包元数据。最新版本的 pip 正确支持设置所需的设置工具 关键字,以下命令应确保 calmjs 可用 在尝试设置这个包之前。最新进展 此软件包的版本可以使用以下方法安装:

$ pip install git+https://github.com/calmjs/calmjs.dev.git#egg=calmjs.dev

或者,手动克隆git存储库并运行命令 手动,例如:

$ git clone https://github.com/calmjs/calmjs.dev.git
$cd calmjs.dev
$ pip install -e .

未能在安装 calmjs.dev 将导致critical node.js依赖关系不存在 为此包正确定义。这可以通过 用以下方法再生它们在这个源代码的根上的wing 安装:

$ python setup.py egg_info

如果没有错误消息表明 关键字,运行测试(记录在下一节中)以确保 包装是否正常工作。

安装node.js外部依赖项

因为这个包集成了许多node.js包来实现 与该环境集成的预期功能,node.js 此包所需的包可以安装到当前 通过 calmjs 可执行文件的工作目录 npm 命令:

$ calmjs npm --install calmjs.dev

测试安装

最后,为了验证是否成功安装了 calmjs.dev 可通过以下命令执行包含的测试:

$ python -m unittest calmjs.dev.tests.make_suite

但是,如果将外部node.js依赖项安装到 遵循当前目录,可以指定当前目录 作为环境变量。在POSIX兼容下 shell可以从该目录中执行此操作:

$CALMJS_TEST_ENV=. python -m unittest calmjs.dev.tests.make_suite

请注意在业力的执行过程中可能会出现一些失败;这 是正常的,因为这些测试涉及到 确保在实际测试失败时正确处理错误。

用法

此软件包提供了可作为calmjs的一部分使用的功能。 运行时,与已经提供 与此包的底层工具链集成(它还 意味着工具链开发人员能够构建 最后,包开发人员利用 这些功能可以快速设置其软件包以测试 与这些工具链一起使用的javascript源代码。

默认工具旨在提供注入的 calmjs 运行时 在负责 生成可部署工件,例如amd包(通过 RequireJS)或Webpack捆绑包(通过Webpack)。通常,这个 包与相应的集成包一起使用 (例如 calmjs.rjs calmjs.webpack )。那些特定的包裹将 对他们如何使用这个包有额外的说明,比如 关于如何创建入口点以支持 使用 calmjs artifact karma 命令测试工件 由本套餐提供。

有要求

例如,开发人员可以通过 calmjs.rjs 用于从他们的python项目创建amd包 使用如下命令:

$ calmjs rjs example.package

上面的命令将打包 python package example.package 通过 r.js 。正如 示例一样,包也可以为其提供测试 javascript代码(自然用javascript编写),可以执行 通过所选包提供的业力测试运行器。这个 命令很简单,只需在工具链运行时之前添加karma, 喜欢:

$ calmjs karma rjs example.package

这将对 rjs 工具链运行时应用测试建议,并且 调用它。通常,在捆绑之前,测试将 对生成目录中的已传输源执行。注释 测试建议也由 calmjs.rjs 实现,以确保 此测试工作流程已正确集成。

带网页包

同样,对于 calmjs.webpack ,它对 webpack 的支持也是 通过类似的机制提供,如下命令 将通过典型的网页包对包执行测试 因果报应法职业:

$ pip install calmjs.dev
0

跳过工件生成

如果测试后生成的工件或包文件结束 (无论是成功还是失败)都是不需要的, -t --只有test 标记可以应用于 业力 命令,如下所示:

$ pip install calmjs.dev
1

使用现有测试轻松测试生成的束伪影

要对预先生成的工件文件运行测试,calmjs.dev提供 特定于 karma 命令的代理工具链运行时 可用于实现此目的。例如,给定一个工件 文件(例如 bundle.js ),可以测试它是否正确 包含由example.package生成/提供的javascript代码 使用以下命令由同一软件包提供的测试:

$ pip install calmjs.dev
2

但是,对于更复杂的工具链和包,这可能会 不起作用,因为生成这些工件通常需要额外的 已添加的可选建议。为了解决这个问题,可以申请 --工具链包标志,其作用与 --某些工具链的可选建议标志。对于 calmjs.rjs , 这是必要的。完整命令可能如下:

$ pip install calmjs.dev
3

同样,对于 webpack ;如果生成选定的工件文件 通过calmjs webpack,可以使用以下方法进行测试:

$ pip install calmjs.dev
4

与所有的calmjs工具一样,附加 -h --帮助每个运行时命令,即calmjs 业力 -h calmjs业力运行 -h 。用 -v 将报告底层包的版本信息 与使用的相应运行时关联。

有关与工件一起测试的更多信息

--工件标志也可以直接在业力上指定。 运行器;这将导致 由特定python导出的显式映射javascript源 模块。这意味着不是构建和测试所有 依赖模块以及给定的模块,所有这些依赖 可以作为单独的、完整的工件应用到测试环境中。 这会从生成中移除依赖源 目录,这样覆盖率报告就不会再出现了 同时测试工件是否与 正在测试的源。带有 nunja.stock 包的示例 它需要 nunja

$ pip install calmjs.dev
5

第一个命令生成工件文件 nunja.js ,然后 立即被后面的命令使用,该命令显式地过滤掉 未指定所有其他来源。否则,标准的方法是 依赖项也将包含在测试中,并且 工件文件。 --覆盖测试标志表示测试覆盖 报告应扩展到所提供的测试。同样,使 --cover artifact标志将覆盖范围报告扩展到 测试运行包含的工件。

测试为包定义的预构建工件

通过 利用calmjs.artifacts可以使用 calmjs神器业力也如果神器条目在 calmjs.artifacts 注册表在 calmjs.artifacts.tests 注册表。通常,模块 工件入口的入口点引用将由 提供生成器项的工具链包。如果文物 在要测试的包中创建了 适用于测试目的的条目,以下命令可以是 执行以测试已定义和生成的工件:

$ pip install calmjs.dev
6

在有些情况下,测试执行可能需要从 其他包;此用例对于依赖包特别有效 他们的开发人员希望确保他们所做的更改 通过他们开发和提供的扩展 它们的包对现有功能没有负面影响。 此功能由 --test with package标志实现, 可用于指定工件应源于哪个包 来自的测试。

$ pip install calmjs.dev
7

上面的命令将使用业力来执行 示例.依赖于 示例.package 。如果工件是正确构建的,没有 由 示例。依赖于包,所有测试都应通过。

注意,标记覆盖源列表 提供要针对工件进行测试的测试包。

如果在包含包之前需要其他工件 工件进入测试运行器(例如,测试可能的冲突 工件可以引入到包工件中),它们可以被指定 使用 --项目标志;指定的项目将被前置到 生成器为测试执行提供的工件列表。

故障排除

以下是标准可能遇到的一些问题 或者是calmjs.dev的典型用法

错误:"framework:mocha"没有提供程序!(解决方案:框架:摩卡)

这个错误最可能的原因是 为此包指定的不可用于当前节点。js 环境。请确保已安装,然后重试。一 方法是在 calmjs.dev 前面加上 calmjs npm 安装命令, 例如:

$ pip install calmjs.dev
8

或者,包开发人员可以有需要此功能的附加功能 打包,并指导感兴趣的下游用户开发 安装并使用带有该附加标志的包 启用。例如, nunja 对此有支持:

$ pip install calmjs.dev
9

错误[插件]:"业力-…"插件:…

特定于某个插件的消息可能会导致测试运行程序 能够执行任何测试。这通常是由 因果报应测试运行程序无法干净处理的版本 node_modules 目录中可用的行为不正常的插件。 如果引用中显示的插件(以karma- 开头)是 对于测试的执行是不必要的,应该删除它,并且 应再次执行测试命令。

用户警告:未知的分发选项:"package\u json"

使用开发方法的安装将显示上述消息,如果 calmjs 尚未安装到当前环境中。拜托 重新安装或通过运行以下命令重新生成元数据:

$ python setup.py egg_info

calmjs.dev 源目录的根目录中确保正确 此程序包的行为。

DII="贡献">

贡献

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
即使值等于null,java也会检索行   java如何正确地创建子类的新实例   java集合。shuffle未按预期工作   elasticsearch使用JAVA API从Elastic Search建议搜索响应中提取源数据   mysql HTTP状态500 java。lang.NullPointerException   具有多个前端服务实例和后端工作者的java ZMQ请求/响应   通过短信、电子邮件、twitter、黑莓上的facebook分享java   java根据netbeans中的单选按钮切换组件的“enable”属性   java托管Bean不工作:调用NotingMB文件中的save函数时出现空指针异常   如何在java中对包含两个以上异构对象的列表进行排序?   java我在尝试log4j时遇到以下错误。   java可以在MacOSX上实现这一点吗?   我尝试在java中使用定界符输入制作caesar密码   长时间运行Tomcat进程的类加载器中的java问题   java swing焦点问题,焦点丢失,未调用focusgain   java如何以字符串格式“EEE,MMM d,yyyy”获取整数月、日和年   java JList侦听器找不到符号