通过与node.js开发工具通过calmjs框架集成到python环境中,帮助开发作为python包一部分提供的javascript代码的包。
calmjs.dev的Python项目详细描述
calmjs.dev
帮助开发javascript代码的包将作为 通过与node.js开发集成的python包的一部分 通过calmjs框架将工具放入python环境中。
简介
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
跳过工件生成
如果测试后生成的工件或包文件结束
(无论是成功还是失败)都是不需要的,
$ 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 源目录的根目录中确保正确 此程序包的行为。
贡献
- 问题跟踪器: https://github.com/calmjs/calmjs.dev/issues
- 源代码:https://github.com/calmjs/calmjs.dev" rel="nofollow">https://github.com/calmjs/calmjs.dev