• 哇哦😂 ,留名,先赞后看

  • 前几天跟思寒请教了下,大概总了以下几点,特来回复你,希望对你有所帮助:

    1. 既然你也说了,是混合应用,那我就理解为有前端和原声揉在一起,那么技术涉及肯定是有前端和原生相关的,你也应该清楚,前端和原生分别有自己的覆盖率收集技术
    2. 既然如此,那可以各自用各自的技术,在测试 APP 的时候,同时启动前端和原生应用的覆盖率收集,但是各自产生各自的覆盖率报告
    3. 如果需要的话,两份数据做个整合,统一算一份 App 的覆盖率报告,至于怎么整合,比例怎么算,是单纯按照行数或者方法数求加权,还是其他算法,这个自己说了算。

    举个栗子:
    前端的用 istanbul 来集成进去,在 app 运行的某个阶段开启前端覆盖率的收集,
    原生那边就用 jacoco,找到一个合适的契机,比如跟现在一样在退出 app 的时候,去分别生成自己的数据 (至于代码怎么写要研究下了),然后取到覆盖率数据,就可以分别生成报告了。

    当然可能我描述的并不是很准确,在转述时也有可能转达丢了意思,要是是在有需求可以帖子里好好研究下,或者寻求帮助,我对前端的覆盖率这块不是很熟。
    祝好运哈!😺

  • 陈老师白闹,肚子空空哪有干货,都是坏水😌

  • 哇哦,首精唉。谢谢大佬😃

  • --- 统一回复下一楼和三楼:
    @link1220 @dancingcat_
    其实增量的我觉得目前粗粒度的来说,AngryTester 做的已经差不多可以了,精细到方法。
    那再有详细一点的可以用 gitdiff,做更精细化的检视,精确到某一行,这个看个人就行了。
    但是精确到方法,用 MD5 来做精准化判定是否变更,可能会有一些问题存在,比如:

    精细到方法粒度,可能小的变化就认为了变更。
    像方法头部的注释,方法内部的局部变量优化,都可能带来方法的变更。

    所以可以自行来决定如何判定方法变更,实现更细粒度的判别,不至于误判,可能你加了一个@param的注释,这个方法就进到变更覆盖率统计里了。
    这个场景在我们这里遇到过,有人反馈说这个代码一点没有变,为啥统计成变更了,我分析过后就是这个原因。

    AngryTester的原库在这里(可能发现我经常提到这个人,因为我很大一部分灵感与这个大兄弟,站在了他的肩膀上,哈哈,很感谢他)
    地址: AngryTester/jacoco

  • 删除节点的时候,应该提醒一下,然后自动把当前节点下关联的数据,做一次集体的默认属性迁移😂 ,哈哈

  • 就像图里贴的,读起来感觉已经很舒服了,很多事情经历过就深有体会。
    不过我不介意你再抽空来一篇新的文章,让我来洗涤一下灵魂😄

  • 嗯嗯嗯,辛苦啦哈😃

  • @Lihuazhang 哈哈,手动艾特下原作者😌 ,来一次亲密接触。

  • 道理肯定是这么个道理,但是不同的语言群体有不同的工作机制,目前来看好像还没有能统一的一种方式或者工具。
    一个项目下来,那肯定是不能拆开来算的,拿到前端、app、服务端的数据,应该是要想办法统一梳理的,隔离开来单独展示的意义其实不是很大,那就看以什么样的配比来统计了吧。

    我之前研究过前端的一些方式,最后搁置了~~目前来看,app 端和后端的稍微好弄一些。

  • 这个有点专业,我也不太能回答上来,我请教了下思寒,看他有没有时间帮我们分析吧。

    按照我的理解,你说的这种场景,首先 java 的和 kotlin 的本身没有问题,按照原来的思路就行;
    涉及到 h5 的,我之前分析过 pc 端的,除了 js 的分析起来还有点意义,CSS 和 HTML 的分析起来意义并不大,而且 js 有专门的覆盖率工具,社区里有分析过 React native 的,你可以看看对你有没有帮助。

    这点我也是了解的不多


  • 我看你用的 jacoco0.7.9,临时拉了一个下来,试了下,OK 的呀

  • 这个报错要看是什么类型的,有的只是飘红其实不影响大局,我这里也有飘红的,不过没关系。

    还有就是编译打包的时候最好去掉 javadoc 和 test 这两像这样

    mvn clean package -Dmaven.javadoc.test=true -Dmaven.test.skip=true
    
    

    他就会跳过生成文档和单元测试阶段,因为 jacoco 里面本身有这些东西,但有些代码比较老,可能会报警或者报错。
    我现在自己打包就这样

  • 哈哈,瞎胡混😃

  • TTF 贡献者榜单上线! at 2019年09月17日

    好嘞😌

  • 我对版本的理解 at 2019年09月17日

    嗯嗯嗯,楼上说的对,名字来源于 Logo 吧(我猜)

  • 我对版本的理解 at 2019年09月16日

    哈哈,一刀见血,很明显作者原来就是花厂的。😂

  • TTF 贡献者榜单上线! at 2019年09月16日

    😂
    支持!
    也好想参与贡献一份自己的力量,但不知如何下手😻

  • 我对版本的理解 at 2019年09月16日

    谈版本

    这个,我也是深有体会。原来的版本概念很强,不管后端还是 apk,版本都是必须带的。直到我到了现在的公司、、一切都变得不一样了,因为现在发布简单了吗,比如丢到 tomcat 里、比如 mvn tomcat7:run 这些发布模式,基本都是在产品里面没有版本概念的,版本的概念也只出现在需求和代码分支里,这个跟以前大不一样


    谈项目经理


    项目经理是普遍存在的,而且我感觉多数公司的卡里程碑都是由项目经理拍板。。(至少我们公司也有这个杯具)


    谈发布


    这个应该是要分 BUG 级别的把,有些东西比较严重,必须得这次发布改完,一些需求型和优化型的可以让产品、 研发、测试、项目经理协商后决定需求排期还是不予修改


    谈吐槽

    团队之间的职责,在没有交集的情况下,沟通成本是很大的。很多团队做的决定,对合作团队都是一种折磨。
    吐槽一下前段时间项目管理部的决定:
    引入 TB 之后, 工时系统为了达到 85% 这个指标,要求请假或者调休人员,也要在工时系统录入。举个栗子:你周一到周五请了一周假,到周五的时候,你需要去 TB 上填个任务,这个任务是请假,然后任务耗时 5 * 8 =40 小时。
    o my god!!! 后来被各界喷,最终花了一周时间改掉了这个方案。


    PS: 你的排版,哈哈哈。嗯。!!!

  • 是最容易锻炼出来惰性的地方,要远离它。
    所以,我选择躺在躺椅上😂

  • 我和我的高数老师 (男)

    背景介绍 (本文根据真实故事改编,但涉及人名均为化名)

    时间: 大一
    人物: 我和我的三个室友
    地点: 某大学
    上课模式: 一大课,两小课,中间休息 15 分钟

    内置函数

    def 点名(){
      点其他人
      "孙XX" 没来
      "张XX" 没来
      "李XX" 没来
      "安XX" 没来
      点其他人
    }
    

    场景一

    高数课:
    第一小课,我们四个都来了:
    第一小课结束,没有点名,回寝室睡觉.
    第二小课开始,老师: 点名 ();
    我们:+_+。

    场景二

    高数课:
    第一小课,我们四个都在寝室睡觉.
    老师: 点名 ()
    我们:+_+。

    场景三

    两个月后, 高数课:
    老师:
    好,我们点个名,先点那个特殊的寝室哈。。
    张 XX,没来把,肯定没来哈
    孙 XX ,没来把,哼,我就知道
    ...
    好,其他不点了,上课

    场景四

    期末考试
    不出意外,我 (孙 XX) 挂了,张 XX 挂了,安 XX(这厮分数还挺高) 李 XX 过了。
    我:认命了,下学期重修。
    张 XX: 不服,遂致电老师求情。

    场景五

    致电:
    嘟嘟嘟,老师电话响了。
    老师:喂,你好
    张 XX: 老师您好,我想问下那个我高数挂了,我看好像差的不多,您看能不能给改个及格。
    老师:我看看,你把你学号报给我。
    张 XX: 123456789
    老师:稍等。
    过了一会儿
    老师: 哦,你是那个 xxx 寝室的张 XX 对把
    张 XX:嗯,是的。
    老师:上课从来没来过,点名次次不在,不挂你挂谁,挂的就是你。
    老师:对了,还有你同寝室的那个孙 XX,告诉他不用找我求情,挂的就是你们
    嘟嘟嘟,老师电话挂了。(请自行脑补那个语气和场景)
    张 XX:。。。

    哈哈,随意写写完,希望我的同学不要看到,不要打我。

  • 关闭 at 2019年08月22日

    先赞为敬,哈哈哈,膜拜一下😂

  • 😂 这么说起来,工作五六年了,好像从来没有主动提过加工资,都是主管直接搞定了来告诉我结果。原来我一直都碰到好的主管😌 (要在家里摆些佛像给柱香了)

  • 个人愚见,几个点:

    1. 防火墙问题,本地分别 curl 一下
      http://localhost:port
      http://localhost:port/jenkins
      如果有其中一个有返回(localhost 换成 127.0.0.1 再试试),而外部 ip 不能访问,那很大可能是防火墙问题

    2. 端口是否真的修改成功了,查看启动日志可查看

    3. jenkins 是否真的启动了,ps 一下看看

    4. 去掉后面的那个 jenkins 试试,http://ip:port 访问下试试,
      有时候不一定要加/jenkins,这个跟不同的启动方式有关

    我觉得这几个点检查下,差不多问题就浮出水面了,我是测试,我不怕测试,哈哈!祝您好运!

  • 666 大赞,假期结束就拿公司试试,哈哈哈哈