首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用android工具在包含特定顺序的类的包上运行Junit测试

使用android工具在包含特定顺序的类的包上运行Junit测试
EN

Stack Overflow用户
提问于 2011-10-26 07:42:42
回答 2查看 4.8K关注 0票数 6

我正在尝试使用命令行运行android instrumentation Junit test。我正在使用以下命令,它正在启动测试。

代码语言:javascript
运行
复制
adb shell am instrument -w com.android.foo/android.test.InstrumentationTestRunner

我的android项目包包含以下java源文件(按字母顺序)

com.android.foo

ActivityTest

ContactsTest

LaunchTest

SendTest

当我使用上面提到的命令运行测试时,测试首先开始执行ActivityTest,依此类推。这不是我想要的,我想让它先执行LaunchTest,然后执行ContactTest、SendTest和ActivityTest。我试着用

代码语言:javascript
运行
复制
adb shell am instrument -w -e class com.android.foo.LaunchTest,com.android.foo.ContactTest com.android.foo/android.test.InstrumentationTestRunner

但它给了我一个错误,可能是因为我没有在代码中使用TestCase类,而是我的LaunchTest和其他扩展了ActivityInstrumentationTestCase2的类。

任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-28 04:05:28

我最终使用下面的命令让它正常工作:

代码语言:javascript
运行
复制
adb shell am instrument -e class com.android.foo.LaunchTest -w com.android.foo/android.test.InstrumentationTestRunner
票数 7
EN

Stack Overflow用户

发布于 2011-10-26 10:57:05

如果您的测试执行顺序很重要,那么您的测试是脆弱的,应该进行重构。这意味着它们相互依赖,理想情况下,测试是独立的。通常,大多数测试都是非常独立和细粒度的,因此我们称之为单元测试。

打破这种依赖关系的一个常见方法是在TestCase中使用setup()teardown()方法。在这里,您可以为运行测试做准备,并清除测试可能做出的任何更改。

也就是说,android.test.InstrumentationTestRunner没有为您的测试套件重新排序的选项。然而,这可以通过两种方式来完成。

1)您可以创建自己的android.test.InstrumentationTestRunner实现,执行一些特殊的排序。这将给你最大的灵活性,但可能需要更多的时间。

2) am instrument可以将类名作为参数,这样您就可以按顺序运行测试,但可以运行多个命令(可能组合在一个bash脚本中)。这可以通过添加参数"-e class classname of test“来完成。

此外,您运行测试的方式中存在一个错误:

代码语言:javascript
运行
复制
adb shell am instrument -w -e class com.android.foo.LaunchTest,com.android.foo.ContactTest com.android.foo/android.test.InstrumentationTestRunner

尝试运行两个类。为此,您需要将其更改为:

代码语言:javascript
运行
复制
adb shell am instrument -w -e class com.android.foo.LaunchTest com.android.foo/android.test.InstrumentationTestRunner
adb shell am instrument -w -e class com.android.foo.ContactTest com.android.foo/android.test.InstrumentationTestRunner
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7897134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档