构建项目时单元测试是手动执行还是自动执行?
Are unit tests only manually executed or auto executed when building out a project?
关于在 React Native 中使用 Jest 进行单元测试,我有几个问题。
我 运行 我的测试现在用 npm test
,这是 运行 的唯一方法还是在构建项目时也正在执行测试?如果是这样,我可以禁用自动测试吗?
如果测试失败,是否会阻止应用程序构建或执行?
如果测试在 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')
});
我很高兴得到任何进一步的提示 - 我只是找不到上述问题的具体答案,所以在此先感谢,而且我还没有真正进行过太多单元测试,所以对此很陌生。
构建项目时不会执行测试。如果您使用的是 CICD 平台,它可能会 运行 npm
命令来构建您的项目,然后 运行 在构建成功完成后进行测试。然而,您可能需要自己配置它,因为构建和测试在默认情况下是专门完成的。
失败的测试不会阻止您的应用程序构建和执行。这只是表明某些逻辑可能不会按照您想要的方式运行。如果您使用的是 CICD 平台并且您的测试失败,通常 jestjs
在遇到故障时会发出 1
的错误代码,这将导致您的管道失败。
react-native
的重点是尽可能与平台无关。因此,失败的 jestjs
测试将对所有平台产生相同的影响。
关于在 React Native 中使用 Jest 进行单元测试,我有几个问题。
我 运行 我的测试现在用
npm test
,这是 运行 的唯一方法还是在构建项目时也正在执行测试?如果是这样,我可以禁用自动测试吗?如果测试失败,是否会阻止应用程序构建或执行?
如果测试在 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')
});
我很高兴得到任何进一步的提示 - 我只是找不到上述问题的具体答案,所以在此先感谢,而且我还没有真正进行过太多单元测试,所以对此很陌生。
构建项目时不会执行测试。如果您使用的是 CICD 平台,它可能会 运行
npm
命令来构建您的项目,然后 运行 在构建成功完成后进行测试。然而,您可能需要自己配置它,因为构建和测试在默认情况下是专门完成的。失败的测试不会阻止您的应用程序构建和执行。这只是表明某些逻辑可能不会按照您想要的方式运行。如果您使用的是 CICD 平台并且您的测试失败,通常
jestjs
在遇到故障时会发出1
的错误代码,这将导致您的管道失败。react-native
的重点是尽可能与平台无关。因此,失败的jestjs
测试将对所有平台产生相同的影响。