diff --git a/src/pytest_html/plugin.py b/src/pytest_html/plugin.py
index 949a6ffa..f6df306f 100644
--- a/src/pytest_html/plugin.py
+++ b/src/pytest_html/plugin.py
@@ -72,6 +72,12 @@ def pytest_addoption(parser):
default="result",
help="column to initially sort on.",
)
+ parser.addini(
+ "expand_logs",
+ type="string",
+ default=False,
+ help="expand all logs by default.",
+ )
parser.addini(
"generate_report_on_test",
type="bool",
diff --git a/src/pytest_html/report_data.py b/src/pytest_html/report_data.py
index fd002099..9fc99941 100644
--- a/src/pytest_html/report_data.py
+++ b/src/pytest_html/report_data.py
@@ -61,6 +61,9 @@ def __init__(self, config):
initial_sort = config.getini("initial_sort")
self._data["initialSort"] = initial_sort
+ expand_logs = config.getini("expand_logs")
+ self._data["expandLogs"] = expand_logs
+
@property
def additional_summary(self):
return self._additional_summary
diff --git a/src/pytest_html/scripts/datamanager.js b/src/pytest_html/scripts/datamanager.js
index b95e95d9..3845d722 100644
--- a/src/pytest_html/scripts/datamanager.js
+++ b/src/pytest_html/scripts/datamanager.js
@@ -57,6 +57,10 @@ class DataManager {
get initialSort() {
return this.data.initialSort
}
+
+ get expandLogs() {
+ return this.data.expandLogs
+ }
}
module.exports = {
diff --git a/src/pytest_html/scripts/main.js b/src/pytest_html/scripts/main.js
index f01f2eac..d628fb30 100644
--- a/src/pytest_html/scripts/main.js
+++ b/src/pytest_html/scripts/main.js
@@ -6,6 +6,7 @@ const {
getVisible,
getCollapsedIds,
setCollapsedIds,
+ getExpandLogs,
getSort,
getSortDirection,
possibleFilters,
@@ -47,10 +48,12 @@ const addItemToggleListener = (elem) => {
const renderContent = (tests) => {
const sortAttr = getSort(manager.initialSort)
+ const expandLogs = getExpandLogs(manager.expandLogs)
const sortAsc = JSON.parse(getSortDirection())
const rows = tests.map(dom.getResultTBody)
const table = document.getElementById('results-table')
const tableHeader = document.getElementById('results-table-head')
+ const clickEvent = new Event('click')
const newTable = document.createElement('table')
newTable.id = 'results-table'
@@ -70,6 +73,9 @@ const renderContent = (tests) => {
find('.logexpander', row).addEventListener('click',
(evt) => evt.target.parentNode.classList.toggle('expanded'),
)
+ if (expandLogs) {
+ find('.logexpander', row).dispatchEvent(clickEvent)
+ }
newTable.appendChild(row)
}
})
diff --git a/src/pytest_html/scripts/storage.js b/src/pytest_html/scripts/storage.js
index ac39c12b..f217f69a 100644
--- a/src/pytest_html/scripts/storage.js
+++ b/src/pytest_html/scripts/storage.js
@@ -47,6 +47,16 @@ const showCategory = (categoryToShow) => {
window.history.pushState({}, null, unescape(url.href))
}
+const getExpandLogs = (expandLogs) => {
+ if (expandLogs === 'true') {
+ return true
+ }
+ if (expandLogs) {
+ return true
+ }
+ return false
+}
+
const getSort = (initialSort) => {
const url = new URL(window.location.href)
let sort = new URLSearchParams(url.search).get('sort')
@@ -99,6 +109,7 @@ module.exports = {
showCategory,
getCollapsedIds,
setCollapsedIds,
+ getExpandLogs,
getSort,
setSort,
getSortDirection,