2020年八月第一周IOT资讯速递

  连接硬件时,哪些费用计算在内?  Sonos首席执行官帕特里克·斯彭斯(Patrick Spence)指控亚马逊亏本出售Alexa设备的掠夺性定价。亚马逊已经承认补贴其设备的销售价格,但是Spence的评论让我回想起6月份CEO马特·范·霍恩(Matt Van Horn)在上个月发表的声明,称谷歌和亚马逊能够补贴与其设备相关的云账单成本。连接的设备。(他不能。)这反过来引发了一个有趣的问题,即亏本出售联网设备意味着什么。如果物理设备的成本还包括后端云成本以使该设备保持最新和在线状态,那么实际的物料清单需要什么?大型云提供商相对于竞争对手(仍然必须为每个销售的设备每月支付1美元)有什么优势? Google WiFi具有一些Nest WiFi功能:  您的智能家居网络是否建立在较旧的Google WiFi产品上?如果是这样,您可以在较新的Nest WiFi产品中找到其他功能,但必须完全重建网络。为使此操作更容易,据报道,谷歌正在向Google Home应用添加网络导入功能。手动或通过网络导入功能重做网络后,您将拥有当前Nest WiFi产品上的功能,例如应用内速度测试,Google Assistant集成以及智能显示器上的访客网络密码。 使用Raspberry Pi将色相灯与电视内容同步:  我爱,爱,爱Stacey去年假期为我购买的Philips Hue Sync。通过使用它和Hue Playbar灯,电视后面的墙壁会以与我正在观看的颜色同步的颜色点亮。现在,由于有了一个名为Harmonize的开源项目,您无需购买Sync产品即可获得相同的效果。当然,您需要自己的Hue灯,但是运行在Raspberry Pi上的Python应用程序提供了相同的效果! 三星的新款智能手表面临多传感器威胁:  本周宣布,三星Galaxy Watch 3的起价为399美元。它可以在Android和iOS上使用,尽管在前者上更好,并且具有可穿戴式传感器的众多特色。还是呢?三星提供了一个心率传感器,这对于如今可穿戴的任何健身设备都是至关重要的。但是,Galaxy Watch 3还可以通过ECG传感器监控血压,血氧和心律。其中一些功能仍在等待FDA批准,因此尚不可用,但是我对可穿戴设备中的传感器已经走了多远! 也许我对Amazon Echo Fr...

使用Jasmine实现微信小程序自动化测试

微信小程序自动化测试官方地址:
微信官方使用的是jest作为测试框架进行的演示,因为自己对jest不熟,平时使用的测试框架是karma+jasmine,所以自己捣鼓了一下午,使用jasmine搭建了微信小程序自动化测试框架,供大家参考。文中如有纰漏,请不吝赐教。
1. 首先在自己的小程序下使用 npm init 转变为node项目,这样我们就可以使用npm工具进行打包工具的下载。
2. 安装小程序自动化SDK:
npm i miniprogram-automator --save-dev
3. 小程序开启cli/http调用功能,位置:微信开发者工具->设置->安全设置->服务端口选择开启
4. 安装jasmine:npm i jasmine --save-dev (这里安装在本地,你也可以全局安装)
  1. 初始化项目 jasmine init,将会生成一下目录:
image
6. 在spec目录下添加测试脚本:
test.spec.js

const automator = require('miniprogram-automator')
describe('index', () => {
  originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
  jasmine.DEFAULT_TIMEOUT_INTERVAL = 100000
  let miniProgram
  let page
  beforeAll(async (done) => {
    miniProgram = await automator.launch({
      cliPath: 'path/to/cli', // 工具 cli 位置,如果你没有更改过默认安装位置,可以忽略此项
      projectPath: 'path/to/project', // 项目文件地址
    })
    page = await miniProgram.reLaunch('/pages/index/index')
    await page.waitFor(5000)
    done()
  })
  afterAll(async () => {
    await miniProgram.close()
    jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
  })
  it('desc', async (done) => {
    const desc = await page.$$('.intro_index')
    expect(desc.length).toBe(4)
    expect(await desc[0].text()).toContain('xxxxxx')
    done()
  })
  it('button', async (done) => {
    const lists = await page.$('.login_redirect')
    expect(await lists.text()).toContain('xxxxxx')
    done()
  })
})
这里有一点需要澄清一下,如果你的微信开发者工具没有安装在默认目录下面,请更改cliPath的地址,projectPath最好也要改为你实际项目的地址
7. 执行 node node_module/jasmine/bin/jasmine.js,如果报时间超时的问题,请修改jasmine.DEFAULT_TIMEOUT_INTERVAL的值,因为众所周知的问题,建议大家把这个时间改长一点。
到这里,jsamine就已经集成好了,但因为自己强迫症在作祟,又做了以下修改:
1. 更改package.json文件,修改
 "scripts": {
  "test": "node node_modules/jasmine/bin/jasmine.js"
}
这样每次进行测试的话直接调用npm test就可以了
2. 添加jasmine-spec-reporter的支持。
因为在cli中正确信息只显示小绿点,看惯了karma的提示,很不爽,于是就更改了显示问题
1)npm install jasmine-spec-reporter --save-dev 安装依赖
2)spec/helpers文件目录下面添加reporter.js,代码如下:
const SpecReporter = require('jasmine-spec-reporter').SpecReporter;

 jasmine.getEnv().clearReporters();              // remove default reporter logs

jasmine.getEnv().addReporter(new SpecReporter({  // add jasmine-spec-reporter

    spec: {
      displayPending: true
    }
}));
好了,现在在你的shell中启动npm test就可以看到测试啦。
其他遇到的问题:
jasmine异步调用的问题:
beforeAll,afterAll, it 等有需要用到异步调用的地方首要添加done参数,其次在调用完毕的地方执行防范done()即可,具体用法请参考官方文档

首次发布地址:https://innovationroad.site

评论

此博客中的热门博文

成立三年,两年收入过 10 亿,这家 IoT 公司都做了什么?