• copilot 产生 python工具函数并生成单元测试


    stock.py 这个文件,我只写了注释(的开头),大部分注释内容和函数都是copilot

    # split a string and extract the environment variable from it 
    # input can be '', 'path=abc', 'path=abc;path=def', 'path=abc;path=def;path=ghi'
    # output is a list of tuple environment variables(key and value)
    def split_env_var(env_var):
        env_var_list = []
        if env_var == '':
            return env_var_list
        else:
            env_var_list = env_var.strip(';').split(';')
            env_var_list = [tuple(x.split('=')) for x in env_var_list]
            return env_var_list
      
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    再新建一个 stock_test.py,写一行注释,Ctrl+L(或者调用 Open compiletion Panel)产生了很多的单元测试样例。

    #this is test of stock.py
    import unittest
    from stock import split_env_var
    
    class TestStock(unittest.TestCase):
        def test_empty(self):
            self.assertEqual(split_env_var(''), [])
        def test_empty2(self):
            self.assertEqual(split_env_var(';'), [('',)])
        def test_one(self):
            self.assertEqual(split_env_var('path=abc;'), [('path', 'abc')])
        def test_two(self):
            self.assertEqual(split_env_var('path=abc;path=def'), [('path', 'abc'), ('path', 'def')])
        def test_three(self):
            self.assertEqual(split_env_var('path=abc;path=def;path=ghi'), [('path', 'abc'), ('path', 'def'), ('path', 'ghi')])
        def test_four(self):
            self.assertEqual(split_env_var('path=abc;path=def;path=ghi;'), [('path', 'abc'), ('path', 'def'), ('path', 'ghi')])
        def test_five(self):
            self.assertEqual(split_env_var('path=abc;path=def;path=ghi;path=jkl'), [('path', 'abc'), ('path', 'def'), ('path', 'ghi'), ('path', 'jkl')])
        def test_six(self):
            self.assertEqual(split_env_var('path=abc;path=def;path=ghi;path=jkl;'), [('path', 'abc'), ('path', 'def'), ('path', 'ghi'), ('path', 'jkl')])
        def test_seven(self):
            self.assertEqual(split_env_var('path=abc;path=def;path=ghi;path=jkl;path=mno'), [('path', 'abc'), ('path', 'def'), ('path', 'ghi'), ('path', 'jkl'), ('path', 'mno')])
        def test_eight(self):
            self.assertEqual(split_env_var('path=abc;path=def;path=ghi;path=jkl;path=mno;'), [('path', 'abc'), ('path', 'def'), ('path', 'ghi'), ('path', 'jkl'), ('path', 'mno')])
        def test_nine(self):
            self.assertEqual(split_env_var('path=abc;path=def;path=ghi;path=jkl;path=mno;path=pqr'), [('path', 'abc'), ('path', 'def'), ('path', 'ghi'), ('path', 'jkl'), ('path', 'mno'), ('path', 'pqr')])
    
    if __name__ == '__main__':
        unittest.main()
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    再装一个 Python Test Explorer 插件用来进行 GUI test

    在这里插入图片描述
    附上我的 python test gui 配置
    .vscode/settings.jon

    {
      "python.testing.unittestEnabled": true,
      "python.testing.unittestArgs": [
        "-v",
        "-s",
        "./tmp",
        "-p",
        "*_test.py"
      ],
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    有了 copilot 这个代码神器,之后的代码效率可以提升很多,之后要学会和这个超级智能助手交流,使用 pilot chat 功能,阅读开源代码的时候如同有一个老师在身旁, 更加有底气。

    • 增加使用经验和熟练度,发掘更多的使用场景,形成工作流
    • 多看看视频和博客,参考其他工程师的使用的心得
  • 相关阅读:
    Unity 性能优化Shader分析处理函数:ShaderUtil.GetShaderGlobalKeywords用法
    UI自动化测试(弹出框,多窗口)
    Spring Cloud【什么是ZipKin、Docker搭建Zipkin服务、Zipkin客户端搭建 、SkyWalking核心概念】(十三)
    不知道10年老电脑如何重装系统?其实很简单
    【代码托管】TortoiseGit和TortoiseSVN忽略文件
    Windows服务器部署SpringBoot及文件服务器MinIO
    小程序打点案例分享总结
    GPT-5即将登场,AI赋能未来:我们该如何迎接这场技术变革?
    软件依赖管理-源码依赖、接口依赖、服务依赖
    Echarts配置(二)
  • 原文地址:https://blog.csdn.net/richard_m_yang/article/details/134382290