• 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 功能,阅读开源代码的时候如同有一个老师在身旁, 更加有底气。

    • 增加使用经验和熟练度,发掘更多的使用场景,形成工作流
    • 多看看视频和博客,参考其他工程师的使用的心得
  • 相关阅读:
    Linux下的一些工具
    Zabbix 5.2实战系列之Grafana变量使用
    绩效只是绩效
    PHP代码审计DVWASQL注入[SQL Injection]
    【数据结构初阶(3)】双向带头结点循环链表
    XShell安装
    博客园美化教程
    Zookeeper 集群部署
    腾讯云轻量应用服务器详细介绍_轻量值得买吗?
    Docker开启远程访问+idea配置docker+dockerfile发布java项目
  • 原文地址:https://blog.csdn.net/richard_m_yang/article/details/134382290