django jenkins test

命令行:

pip install django-jeknins

pip install -e git+git://github.com/kmmbvnr/django-jenkins.git#egg=django-jenkins

pip install coverage

python manage.py jenkins --enable-coverage

配置:

django settings:

PROJECT_APPS = []

JENKINS_TASKS = ()

INSTALLED_APPS += [

    'django_jenkins',

]

pipeline:

stage ("Generate Coverage Report") {
    generate_coverage_report()
    cobertura autoUpdateHealth: false, autoUpdateStability: false, coberturaReportFile: 'src/streamersite/reports/coverage.xml', conditionalCoverageTargets: '70, 0, 0', failNoReports: false, failUnhealthy: false, failUnstable: false, lineCoverageTargets: '80, 0, 0', maxNumberOfBuilds: 0, methodCoverageTargets: '80, 0, 0', onlyStable: false, sourceEncoding: 'ASCII', zoomCoverageChart: false
}

  遇到的问题和解决办法:

1.Segmentation fault: 11  python manage.py jenkins --enable-coverage

场景:slave机器执行python manage.py jenkins --enable-coverage 报错

解决:render 的html中"©"符号,改成&copy

2.assertHTMLEqual(base_data, test_data, msg)

场景:base_data, test_data 入参为html文件报错

解决:读取html文件为str,作为入参进行比较

f1 = codecs.open(base_test_file, 'r', 'utf-8')
base_data = BeautifulSoup(f1.read(), "html.parser").get_text() 

        ----->"html.parse"需要加,否则:

        UserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for this system ("lxml"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it         may use a different parser and behave differently.

3.assertRedirects(response, redirect, msg_prefix=msg

场景:报错:redirect_response = response.client.get(path, QueryDict(query), secure=(scheme == 'https')) 

          AttributeError: 'HttpResponseRedirect' object has no attribute 'client'

解决:fetch_redirect_response=False

assertRedirects(redirect_result, "http://fusion360.autodesk.com/", msg_prefix=msg, fetch_redirect_response=False)

 

posted on 2018-10-25 10:23  机器大浪猫  阅读(427)  评论(0编辑  收藏  举报