Q1.方法执行一个结束后陷入死循环,不在执行
A:因为多线程中,主线程结束了,子线程依然在运行重新修改加了一个t.setDaemon,只要主线程执行结束,子线程也停止
threads = []
threads.append(threading.Thread(target=logcat_start04))
threads.append(threading.Thread(target=run04))
print(threads)
if __name__ == '__main__':
for t in threads:
t.setDaemon(True) # 加了这个是说明 主线程 执行完了 子线程也停止(无论是否执行完毕)
t.start()
t.join()
Q2:日志文件过大
A:日志分割
https://www.cnblogs.com/andy9468/p/8378492.htm
Q3:截图对应日志文件分割
A:在抓log函数和主函数运行的这个函数内给一个循环,实现主函数运行一次,日志文件生成一次
Q4:要让截图文件和日志文件的名称标明第几次便于查找
A:在主函数前加一个global 变量,可以让后面的代码进行调用
def G6SATest04(self):
global Test04time
Q5:使用unittest框架经常报错No Test Found
A:1、Edit Configurations
2、点击“+"
3、选择python,输入名字,输入脚本路径,确认
Q6:Log输入到指定路径出现乱码
A:在pycharm的file→settings中,找到Editor,其中的code style中有一个file encodings
点击后,右侧有三处需要修改:
1.Global Encoding改为ISO-8859-1
2.Project Encoding改为 GBK
3.Default encoding for properties files 改为:UTF-16
然后点击apply 应用后点击OK即可
再次运行脚本,控制台就不会出现乱码,显示正常了
Q7:AndroidStudio无法执行Java类的main方法
Q:错误提示
`FAILURE: Build failed with an exception.
-
Where:
Initialization script ‘/tmp/ReflectTest_main__.gradle’ line: 20 -
What went wrong:
A problem occurred configuring project ‘:app’.
Could not create task ‘:app:ReflectTest.main()’.
SourceSet with name ‘main’ not found
A:修改.idea/gradle.xml文件
Android Studio使用gradle作为构建工具,所以归根到底还是gradle配置的问题.
在gradle.xml中加入<potion name=“delegatedBuild” value = “false”/ >
根据配置的字面意思理解,这个设置的意思是不委托gradle进行构建。现实效果也是加了这行配置之后就是jvm执行Java类的main方法了,而不是gradle当做task来执行了。
Q8:HTMLTestRunner运行后提示no attribute HTMLTestRunner
A:
需要对HTMLTestRunner.py进行修改
第94行,将import StringIO修改成import io
第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()
第642行,将if not rmap.has_key(cls):修改成if not cls in rmap:
第766行,将uo = o.decode('latin-1')修改成uo = e
第775行,将ue = e.decode('latin-1')修改成ue = e
第631行,将print >> sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))