在浏览器上对Nativescript应用程序逻辑进行单元测试

时间:2019-04-01 15:41:42

标签: unit-testing angular-cli nativescript nativescript-angular

我正在尝试为ng test在浏览器上运行的Nativescript应用程序设置单元测试。问题是,每当有tns-core-modules或另一个插件导入时,由于平台特定的文件(例如“ tns-core-modules / application / application.android.js”)始终无法获取而无法解析该模块编译到捆绑软件中,从而引发类似“找不到模块:错误:无法解析'tns-core-modules / application'”之类的错误。

我知道Nativescript中有内置的单元测试支持。我的问题是它不能在CI上运行。我希望对我的业务逻辑进行轻量级测试,从而模拟出所有平台依赖性。 我一直在寻找一种在运气不佳的情况下在运行时模拟模块导入的方法。我查看了rewire程序包,但它仅在节点上运行。

2 个答案:

答案 0 :(得分:0)

您根本无法在浏览器上运行NativeScript应用程序。

如果您正在寻找无头模式之类的东西,Appium也有一个isHeadless的功能。

我之间是否可以知道为什么您认为无法在CI上运行{N}单元测试?它毕竟也应该在CI上工作,毕竟它是一台基于某些触发器运行相同命令的机器。

答案 1 :(得分:0)

我终于设法使它起作用。这不是一个非常好的解决方案,我还没有看到它需要多少维护。这里的重点:

  1. 使用paths的{​​{1}}部分添加模拟导入 地点
  2. 在模拟目录中为所有未解决的模块创建文件
  3. 某些nativescript模块在全局上引用辅助函数 范围,但它们是不确定的。我的解决方案是在 tsconfig.json这样
test.ts