在构建项目时,单元测试只手动执行还是自动执行?



在React Native中使用Jest进行单元测试时,我有几个问题。

  1. 我现在用npm test运行我的测试,这是运行它的唯一方法还是在构建项目时也执行测试?如果是这样,我可以禁用自动测试吗?

  2. 如果测试失败,是否会阻止应用程序构建或执行?

  3. 如果测试在iOS和Android上失败或成功,行为是否有任何差异?

示例

下面的代码只是测试AsyncStorage是否按预期工作。如果下面的测试失败-肯定AsyncStorage将不工作,如果我在应用程序中使用它,但它会阻止应用程序被完全使用吗?

beforeEach(() => {
AsyncStorage.clear();
});
it('Test - Read AsyncStorage', async () => {
await AsyncStorage.setItem('username', 'testUser')
let usernameValue = await AsyncStorage.getItem('username')
expect(usernameValue).toBe('testUser')
});

我很高兴得到任何进一步的提示-我只是找不到上面的具体答案,所以提前感谢,我真的没有做过太多的单元测试,所以对这个很陌生。

  1. 在构建项目时不执行测试。如果您使用的是CICD平台,它可能会运行npm命令来构建项目,然后在构建成功完成后运行测试。但是,您可能需要自己配置,因为默认情况下构建和测试是单独完成的。

  2. 一个失败的测试不会阻止你的应用程序的构建和执行。它只是一个指示,表明某些逻辑可能不会按照您希望的方式运行。如果您使用的是CICD平台,并且您的测试失败了,通常jestjs在遇到失败时会发出错误代码1,这将导致您的管道失败。

  3. react-native的重点是尽可能地与平台无关。因此,失败的jestjs测试将对所有平台产生相同的影响。

最新更新