html-testRunner 在所有测试完成后创建测试报告。 文本打印在报告中,但没有像控制台那样的新行。

如何在每个打印文本后获得新行? 它可以在 report_template.html 文件中完成还是应该在代码中完成? 在我的 Python 代码中尝试了\\n\\r\\n ,但仍然没有任何变化。

这是 html-testRunner 报告的结果在此处输入图片说明

这是来自生成的报告 .html 文件

                        <tr style="display:none;">
                            <td class="col-xs-9" colspan="3"><p>Login successfull & home page successfully loaded
Element ( course-form-form:add-partner-course-partnerTrainings-edit ) is visible, moving further
Element ( ui-dialog ) disappeared, moving further
Element ( courseEditForm:delete ) is visible, moving further
Element ( j_idt47 ) is visible, moving further
Element ( courseEditForm:return ) is visible, moving further
Element ( course-form-form:add-partner-course-partnerTrainings-edit ) is visible, moving further
</p>
                            </td>
                        </tr>

这都是report_template.html

<!DOCTYPE html>
<html>
<head>
    <title>{{ title }}</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
</head>
<body>
    <div class="container">
        <div class="row">
            <div class="col-xs-12">
                <h2 class="text-capitalize">{{ title }}</h2>
                <p class='attribute'><strong>Start Time: </strong>{{ header_info.start_time.strftime("%Y-%m-%d %H:%M:%S") }}</p>
                <p class='attribute'><strong>Duration: </strong>{{ header_info.status.duration }}</p>
                <p class='attribute'><strong>Summary: </strong>Total: {{ header_info.status.total }}, Pass: {{ header_info.status.success }}{% if header_info.status.failure %}, Fail: {{ header_info.status.failure }}{% endif %}{% if header_info.status.error %}, Error: {{ header_info.status.error }}{% endif %}{% if header_info.status.skip %}, Skip: {{ header_info.status.skip }}{% endif %}</p>
            </div>
        </div>
        {%- for test_case_name, tests_results in all_results.items() %}
        {%- if tests_results %}
        <div class="row">
            <div class="col-xs-12 col-sm-10 col-md-10">
                <table class='table table-hover table-responsive'>
                    <thead>
                        <tr>
                            <th>{{ test_case_name }}</th>
                            <th>Status</th>
                            <th></th>
                        </tr>
                    </thead>
                    <tbody>
                        {%- for test_case in tests_results %}
                        {%- if not test_case.subtests is defined %}
                        <tr class='{{ status_tags[test_case.outcome] }}'>
                            <td class="col-xs-10">{{ test_case.test_id.split(".")[-1] }}</td>
                            <td class="col-xs-1">
                                <span class="label label-{{ status_tags[test_case.outcome] }}" style="display:block;width:40px;">
                                    {%- if test_case.outcome == test_case.SUCCESS -%}
                                        Pass
                                    {%- elif test_case.outcome == test_case.SKIP -%}
                                        Skip
                                    {%- elif test_case.outcome == test_case.FAILURE -%}
                                        Fail
                                    {%- else -%}
                                        Error
                                    {%- endif -%}
                                </span>
                            </td>
                            <td class="col-xs-1">
                                {%- if (test_case.stdout or test_case.err) %}
                                <button class="btn btn-default btn-xs">View</button>
                                {%- endif %}
                            </td>
                        </tr>
                        {%- if (test_case.stdout or test_case.err or test_case.err) and test_case.outcome != test_case.SKIP %}
                        <tr style="display:none;">
                            <td class="col-xs-9" colspan="3">
                                {%- if test_case.stdout %}<p>{{ test_case.stdout }}</p>{% endif %}
                                {%- if test_case.err %}<p style="color:maroon;">{{ test_case.err[0].__name__ }}: {{ test_case.err[1] }}</p>{% endif %}
                                {%- if test_case.err %}<p style="color:maroon;">{{ test_case.test_exception_info }}</p>{% endif %}
                            </td>
                        </tr>
                        {%- endif %}
                        {%- if (test_case.stdout or test_case.err or test_case.err) and test_case.outcome == test_case.SKIP %}
                        <tr style="display:none;">
                            <td class="col-xs-9" colspan="3">
                                {%- if test_case.stdout %}<p>{{ test_case.stdout }}</p>{% endif %}
                                {%- if test_case.err %}<p style="color:maroon;">{{ test_case.err }}</p>{% endif %}
                            </td>
                        </tr>
                        {%- endif %}
                        {%- else %}
                        <tr class='{{ status_tags[test_case.outcome] }}'>
                            <td class="col-xs-10">{{ test_case.test_id.split(".")[-1] }}</td>
                            <td class="col-xs-1">
                                <span class="label label-{{ status_tags[test_case.outcome] }}" style="display:block;width:40px;">
                                    {%- if test_case.outcome == test_case.SUCCESS -%}
                                        Pass
                                    {%- else -%}
                                        Fail
                                    {%- endif -%}
                                </span>
                            </td>
                            <td class="col-xs-1">
                                {%- if test_case.subtests %}
                                <button class="btn btn-default btn-xs">View</button>
                                {%- endif %}
                            </td>
                        </tr>
                        {%- if test_case.subtests %}
                        <tr style="display:none;">
                            <td colspan="3">

                                <table class='table table-hover table-responsive'>
                                    <tbody>
                                        {%- for subtest in test_case.subtests %}
                                        <tr class='{{ status_tags[subtest.outcome] }}'>
                                            <td class="col-xs-10">{{ subtest.test_id.split(".")[-1] }}</td>
                                            <td class="col-xs-1">
                                                <span class="label label-{{ status_tags[subtest.outcome] }}" style="display:block;width:40px;">
                                                {%- if subtest.outcome == subtest.SUCCESS -%}
                                                    Pass
                                                {%- else -%}
                                                    Fail
                                                {%- endif -%}
                                                </span>
                                            </td>
                                            <td class="col-xs-1">
                                                {%- if subtest.err %}
                                                <button class="btn btn-default btn-xs">View</button>
                                                {%- endif %}
                                            </td>
                                        </tr>
                                        {%- if subtest.err or subtest.err %}
                                        <tr style="display:none;">
                                            <td class="col-xs-9" colspan="3">
                                                {%- if subtest.err %}<p style="color:maroon;">{{ subtest.err[0].__name__ }}: {{ subtest.err[1] }}</p>{% endif %}
                                                {%- if subtest.err %}<p style="color:maroon;">{{ subtest.test_exception_info }}</p>{% endif %}
                                            </td>
                                        </tr>
                                        {%- endif %}
                                        {% endfor %}
                                    </tbody>
                                </table>
                            </td>
                        </tr>
                        {%- endif %}
                        {%- endif %}
                        {%- endfor %}
                        <tr>
                            <td colspan="3">
                                Total: {{ summaries[test_case_name].total }}, Pass: {{ summaries[test_case_name].success }}{% if summaries[test_case_name].failure %}, Fail: {{ summaries[test_case_name].failure }}{% endif %}{% if summaries[test_case_name].error %}, Error: {{ summaries[test_case_name].error }}{% endif %}{% if summaries[test_case_name].skip %}, Skip: {{ summaries[test_case_name].skip }}{% endif %} -- Duration: {{ summaries[test_case_name].duration }}
                            </td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>
        {%- endif %}
        {%- endfor %}
    </div>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $('td').on('click', '.btn', function(e){
                e.preventDefault();
                e.stopImmediatePropagation();
                var $this = $(this);
                var $nextRow = $this.closest('tr').next('tr');
                $nextRow.slideToggle("fast");
                $this.text(function(i, text){
                    if (text === 'View') {
                        return 'Hide';
                    } else {
                        return 'View';
                    };
                });
            });
        });
    </script>
</body>
</html

#1楼 票数:1

尝试在<head>标签中添加以下代码:

<style> 
    p {  
        white-space: pre-line; 
    }
</style> 

当您的<p>标签被x轴溢出时,它将在单行或多行下打印他的其余内容。

#2楼 票数:0

我试图通过输入 HTML 标签而不是 pythonish '\\n' 来操作打印命令。 如果您将字符串作为字符串包含在 HTML 段落标记 <p> 和 </p> 之间,您将在新行中获得包含的数据。 在测试用例中的某处输入这样的数据对我有用:

print('<p>' + string1_for_documenting + '</p>')
print('<p>' + string2_for_documenting + '</p>')

但是我无法管理较短的 <BR> 之类的东西

print(string1_for_documenting + '<BR>')

  ask by Māris L translate from so

未解决问题?本站智能推荐:

3回复

显示python unittest结果以漂亮的表格形式显示

我正在编写一个Pythonic工具,用于验证某个系统的正确性。 每个验证写成一个Python unittest ,报告是这样的: 在我看来,这种格式很难阅读,特别是对于非Python主义者。 是否有任何报告生成器可以以漂亮的表格形式生成报告,例如: 澄清测试套件在远程终端上运
1回复

如何在 HTMLTestRunner 报告中包含屏幕截图?

我正在使用 Python/Selenium/unittest/HTMLTestRunner 我想在每个测试套件失败的测试中包含屏幕截图。 有了它它运行测试套件并创建报告 这里tearDown创建截图并关闭测试。 如果套件包含更多测试,则新浏览器将打开并继续下一个测试步骤,最后再次创建屏幕截图
2回复

在TestNG框架中运行测试用例

你好,我正在尝试在TestNG类中运行一个测试用例,在该类中我可以获取报告并且编号测试失败或通过了测试用例,当在普通的Java类中运行时,以下代码可以工作... 当上面的代码作为TestNG Test运行时,出现以下错误 失败:首先创建java.lang.NoClassDefF
1回复

TestNG将重试的方法报告为单独的测试运行

几天前,我第一次开始与TESTNG合作。 我使用IRetryAnalyzer接口实现了重试分析器,该接口最多可重试失败的测试方法3次。 我有一个称为retryInvoker()的测试方法,该方法两次失败,第三次成功。 TestNG报告这是3个单独的测试运行的方式,其中2个失败,
1回复

如何使用 C# 在 selenium 中生成测试报告

我正在使用 C# 进行自动化测试,并且已经为我的项目创建了一个小框架。 但是我无法像在 Java html 文件报告中一样使用 C# 创建测试报告文件。 我想在 html 文件报告中查看我的所有测试用例,例如运行的测试用例总数、失败或通过了多少等。 请帮助我如何通过示例生成这样的 html 文件
2回复

如何使用Java在Selenium WebDriver中生成报告

我正在使用Java和Selenium WebDriver。 如何使用Java在Selenium WebDriver中生成报告? 我不想要JUnit或TestNG报告。 有人可以帮忙吗?
1回复

如何在 Cypress 中创建基本的普通测试报告

我需要帮助将额外的记者连接到 Cypress 测试。 我正在寻找一个基本的、非常简单的 (HTML) 报告,其中只有测试和状态的名称(失败/通过)。 稍后我将通过电子邮件发送。 我找到了Mochawesome ,但这对于一页电子邮件来说太复杂了。 你有什么想法我可以使用吗? 将结果显示在如下表中
4回复

运行mocha测试但获取错误:ReferenceError:文档未定义

我正在使用mocha测试框架来测试Http rest-api。 我想为所有测试用例生成测试报告,但是当我运行mocha --reporter html > report.html 获得以下错误