<html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>测试报告</title> <link href="https://cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"> <link href="https://cdn.bootcss.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet"> <link href="https://cdn.bootcss.com/animate.css/3.5.2/animate.min.css" rel="stylesheet"> <link href="https://cdn.bootcss.com/chosen/1.8.2/chosen.css" rel="stylesheet"> <base target="_blank"> <style type="text/css"> h1, h2, h3, h4, h5, h6 { font-weight: 100 } h1 { font-size: 30px } h2 { font-size: 24px } h3 { font-size: 16px } h4 { font-size: 14px } h5 { font-size: 12px } h6 { font-size: 10px } h3, h4, h5 { margin-top: 5px; font-weight: 600 } a:focus { outline: 0 } .nav > li > a { color: #a7b1c2; font-weight: 600; padding: 14px 20px 14px 25px } .nav li > a { display: block } .nav.navbar-right > li > a { color: #999c9e } .nav > li.active > a { color: #fff } .navbar-default .nav > li > a:focus, .navbar-default .nav > li > a:hover { background-color: #293846; color: #fff } .nav .open > a, .nav .open > a:focus, .nav .open > a:hover { background: #fff } .nav > li > a i { margin-right: 6px } .navbar { border: 0 } .navbar-default { background-color: transparent; border-color: #2f4050; position: relative } .navbar-top-links li { display: inline-block } .navbar-top-links li:last-child { margin-right: 30px } body.body-small .navbar-top-links li:last-child { margin-right: 10px } .navbar-top-links li a { padding: 20px 10px; min-height: 50px } .dropdown-menu { border: medium none; display: none; float: left; font-size: 12px; left: 0; list-style: none outside none; padding: 0; position: absolute; text-shadow: none; top: 100%; z-index: 1000; border-radius: 0; box-shadow: 0 0 3px rgba(86, 96, 117, .3) } .dropdown-menu > li > a { border-radius: 3px; color: inherit; line-height: 25px; margin: 4px; text-align: left; font-weight: 400 } .dropdown-menu > li > a.font-bold { font-weight: 600 } .navbar-top-links .dropdown-menu li { display: block } .navbar-top-links .dropdown-menu li:last-child { margin-right: 0 } .navbar-top-links .dropdown-menu li a { padding: 3px 20px; min-height: 0 } .navbar-top-links .dropdown-menu li a div { white-space: normal } .navbar-top-links .dropdown-alerts, .navbar-top-links .dropdown-messages, .navbar-top-links .dropdown-tasks { width: 310px; min-width: 0 } .navbar-top-links .dropdown-messages { margin-left: 5px } .navbar-top-links .dropdown-tasks { margin-left: -59px } .navbar-top-links .dropdown-alerts { margin-left: -123px } .navbar-top-links .dropdown-user { right: 0; left: auto } .dropdown-alerts, .dropdown-messages { padding: 10px } .dropdown-alerts li a, .dropdown-messages li a { font-size: 12px } .dropdown-alerts li em, .dropdown-messages li em { font-size: 10px } .nav.navbar-top-links .dropdown-alerts a { font-size: 12px } .nav-header { padding: 33px 25px; background: url(patterns/header-profile.png) no-repeat } .nav > li.active { border-left: 4px solid #19aa8d; background: #293846 } .nav.nav-second-level > li.active { border: none } .nav.nav-second-level.collapse[style] { height: auto !important } .nav-header a { color: #DFE4ED } .nav-header .text-muted { color: #8095a8 } .minimalize-styl-2 { padding: 4px 12px; margin: 14px 5px 5px 20px; font-size: 14px; float: left } .navbar-form-custom { float: left; height: 50px; padding: 0; width: 200px; display: inline-table } .navbar-form-custom .form-group { margin-bottom: 0 } .nav.navbar-top-links a { font-size: 14px } .navbar-form-custom .form-control { background: none repeat scroll 0 0 rgba(0, 0, 0, 0); border: medium none; font-size: 14px; height: 60px; margin: 0; z-index: 2000 } .count-info .label { line-height: 12px; padding: 1px 5px; position: absolute; right: 6px; top: 12px } .arrow { float: right; margin-top: 2px } .fa.arrow:before { content: "\f104" } .active > a > .fa.arrow:before { content: "\f107" } .nav-second-level li, .nav-third-level li { border-bottom: none !important } .nav-second-level li a { padding: 7px 15px 7px 10px; padding-left: 52px } .nav-third-level li a { padding-left: 62px } .nav-second-level li:last-child { margin-bottom: 10px } .mini-navbar .nav li:focus > .nav-second-level, body:not(.fixed-sidebar):not(.canvas-menu).mini-navbar .nav li:hover > .nav-second-level { display: block; border-radius: 0 2px 2px 0; min-width: 140px; height: auto } body.mini-navbar .navbar-default .nav > li > .nav-second-level li a { font-size: 12px; border-radius: 0 2px 2px 0 } .fixed-nav .slimScrollDiv #side-menu { padding-bottom: 60px; position: relative } .slimScrollDiv > * { overflow: hidden } .mini-navbar .nav-second-level li a { padding: 10px 10px 10px 15px } .canvas-menu.mini-navbar .nav-second-level { background: #293846 } .mini-navbar li.active .nav-second-level { left: 65px } .navbar-default .special_link a { background: #1ab394; color: #fff } .navbar-default .special_link a:hover { background: #17987e !important; color: #fff } .navbar-default .special_link a span.label { background: #fff; color: #1ab394 } .navbar-default .landing_link a { background: #1cc09f; color: #fff } .navbar-default .landing_link a:hover { background: #1ab394 !important; color: #fff } .navbar-default .landing_link a span.label { background: #fff; color: #1cc09f } .logo-element { text-align: center; font-size: 18px; font-weight: 600; color: #fff; display: none; padding: 18px 0 } .pace-done #page-wrapper, .pace-done .footer, .pace-done .nav-header, .pace-done .navbar-static-side, .pace-done li.active { -webkit-transition: all .5s; transition: all .5s } .navbar-fixed-top { -webkit-transition-duration: .5s; transition-duration: .5s; z-index: 2030 } .navbar-fixed-top, .navbar-static-top { background: #f3f3f4 } .fixed-nav #wrapper { padding-top: 60px; box-sizing: border-box } .fixed-nav .minimalize-styl-2 { margin: 14px 5px 5px 15px } .body-small .navbar-fixed-top { margin-left: 0 } body.mini-navbar .navbar-static-side { width: 70px } body.mini-navbar .nav-label, body.mini-navbar .navbar-default .nav li a span, body.mini-navbar .profile-element { display: none } body.canvas-menu .profile-element { display: block } body:not(.fixed-sidebar):not(.canvas-menu).mini-navbar .nav-second-level { display: none } body.mini-navbar .navbar-default .nav > li > a { font-size: 16px } body.mini-navbar .logo-element { display: block } body.canvas-menu .logo-element { display: none } body.mini-navbar .nav-header { padding: 0; background-color: #1ab394 } body.canvas-menu .nav-header { padding: 33px 25px } body.mini-navbar #page-wrapper { margin: 0 0 0 70px } body.canvas-menu.mini-navbar #page-wrapper, body.canvas-menu.mini-navbar .footer { margin: 0 } body.canvas-menu .navbar-static-side, body.fixed-sidebar .navbar-static-side { position: fixed; width: 220px; z-index: 2001; height: 100% } body.fixed-sidebar.mini-navbar .navbar-static-side { width: 70px } body.body-small.fixed-sidebar.mini-navbar #page-wrapper, body.fixed-sidebar.mini-navbar #page-wrapper { margin: 0 0 0 70px } body.body-small.fixed-sidebar.mini-navbar .navbar-static-side { width: 70px } .fixed-sidebar.mini-navbar .nav li > .nav-second-level { display: none } .fixed-sidebar.mini-navbar .nav li.active { border-left-width: 0 } .canvas-menu.mini-navbar .nav li:hover > .nav-second-level, .fixed-sidebar.mini-navbar .nav li:hover > .nav-second-level { position: absolute; left: 70px; top: 0; background-color: #2f4050; padding: 10px 10px 0; font-size: 12px; display: block; min-width: 140px; border-radius: 2px } body.fixed-sidebar.mini-navbar .navbar-default .nav > li > .nav-second-level li a { font-size: 12px; border-radius: 3px } body.canvas-menu.mini-navbar .navbar-default .nav > li > .nav-second-level li a { font-size: 13px; border-radius: 3px } .canvas-menu.mini-navbar .nav-second-level li a, .fixed-sidebar.mini-navbar .nav-second-level li a { padding: 10px 10px 10px 15px } .canvas-menu.mini-navbar .nav-second-level, .fixed-sidebar.mini-navbar .nav-second-level { position: relative; padding: 0; font-size: 13px } .canvas-menu.mini-navbar li.active .nav-second-level, .fixed-sidebar.mini-navbar li.active .nav-second-level { left: 0 } body.canvas-menu nav.navbar-static-side { z-index: 2001; background: #2f4050; height: 100%; position: fixed; display: none } body.canvas-menu.mini-navbar nav.navbar-static-side { display: block; width: 70px } .top-navigation #page-wrapper { margin-left: 0 } .top-navigation .navbar-nav .dropdown-menu > .active > a { background: #fff; color: #1ab394; font-weight: 700 } .white-bg .navbar-fixed-top, .white-bg .navbar-static-top { background: #fff } .top-navigation .navbar { margin-bottom: 0 } .top-navigation .nav > li > a { padding: 15px 20px; color: #676a6c } .top-navigation .nav > li a:focus, .top-navigation .nav > li a:hover { background: #fff; color: #1ab394 } .top-navigation .nav > li.active { background: #fff; border: none } .top-navigation .nav > li.active > a { color: #1ab394 } .top-navigation .navbar-right { padding-right: 10px } .top-navigation .navbar-nav .dropdown-menu { box-shadow: none; border: 1px solid #e7eaec } .top-navigation .dropdown-menu > li > a { margin: 0; padding: 7px 20px } .navbar .dropdown-menu { margin-top: 0 } .top-navigation .navbar-brand { background: #1ab394; color: #fff; padding: 15px 25px } .top-navigation .navbar-top-links li:last-child { margin-right: 0 } .body-small.fixed-sidebar.mini-navbar .top-navigation #page-wrapper, .canvas-menu #page-wrapper, .mini-navbar .top-navigation #page-wrapper, .top-navigation.body-small.fixed-sidebar.mini-navbar #page-wrapper, .top-navigation.mini-navbar #page-wrapper { margin: 0 } .fixed-nav #wrapper.top-navigation, .top-navigation.fixed-nav #wrapper { margin-top: 50px } .top-navigation .footer.fixed { margin-left: 0 !important } .top-navigation .wrapper.wrapper-content { padding: 40px } .body-small .top-navigation .wrapper.wrapper-content, .top-navigation.body-small .wrapper.wrapper-content { padding: 40px 0 } .navbar-toggle { color: #fff; padding: 6px 12px; font-size: 14px } .top-navigation .navbar-nav .open .dropdown-menu .dropdown-header, .top-navigation .navbar-nav .open .dropdown-menu > li > a { padding: 10px 15px 10px 20px } @media (max-width: 768px) { .top-navigation .navbar-header { display: block; float: none } } .menu-visible-lg, .menu-visible-md { display: none !important } @media (min-width: 1200px) { .menu-visible-lg { display: block !important } } @media (min-width: 992px) { .menu-visible-md { display: block !important } } @media (max-width: 767px) { .menu-visible-lg, .menu-visible-md { display: block !important } } .btn { border-radius: 3px } .float-e-margins .btn { margin-bottom: 5px } .btn-w-m { min-width: 120px } .btn-primary.btn-outline { color: #1ab394 } .btn-success.btn-outline { color: #1c84c6 } .btn-info.btn-outline { color: #23c6c8 } .btn-warning.btn-outline { color: #f8ac59 } .btn-danger.btn-outline { color: #ed5565 } .btn-danger.btn-outline:hover, .btn-info.btn-outline:hover, .btn-primary.btn-outline:hover, .btn-success.btn-outline:hover, .btn-warning.btn-outline:hover { color: #fff } .btn-primary { background-color: #6ca745; border-color: rgba(255, 255, 255, 0); color: #FFF } .btn-primary.active, .btn-primary:active, .btn-primary:focus, .btn-primary:active:focus, .btn-primary:hover, .btn-primary:active:hover, .open .dropdown-toggle.btn-primary { background-color: #568637; border-color: rgba(255, 255, 255, 0); color: #fff } .btn-primary.active, .btn-primary:active, .open .dropdown-toggle.btn-primary { background-image: none } .btn-primary.active[disabled], .btn-primary.disabled, .btn-primary.disabled.active, .btn-primary.disabled:active, .btn-primary.disabled:focus, .btn-primary.disabled:hover, .btn-primary[disabled], .btn-primary[disabled]:active, .btn-primary[disabled]:focus, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary, fieldset[disabled] .btn-primary.active, fieldset[disabled] .btn-primary:active, fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary:hover { background-color: #1dc5a3; border-color: #1dc5a3 } .btn-success { background-color: #1c84c6; border-color: #1c84c6; color: #FFF } .btn-success.active, .btn-success:active, .btn-success:focus, .btn-success:hover, .open .dropdown-toggle.btn-success { background-color: #1a7bb9; border-color: #1a7bb9; color: #FFF } .btn-success.active, .btn-success:active, .open .dropdown-toggle.btn-success { background-image: none } .btn-success.active[disabled], .btn-success.disabled, .btn-success.disabled.active, .btn-success.disabled:active, .btn-success.disabled:focus, .btn-success.disabled:hover, .btn-success[disabled], .btn-success[disabled]:active, .btn-success[disabled]:focus, .btn-success[disabled]:hover, fieldset[disabled] .btn-success, fieldset[disabled] .btn-success.active, fieldset[disabled] .btn-success:active, fieldset[disabled] .btn-success:focus, fieldset[disabled] .btn-success:hover { background-color: #1f90d8; border-color: #1f90d8 } .btn-info { background-color: #23c6c8; border-color: #23c6c8; color: #FFF } .btn-info.active, .btn-info:active, .btn-info:focus, .btn-info:hover, .open .dropdown-toggle.btn-info { background-color: #21b9bb; border-color: #21b9bb; color: #FFF } .btn-info.active, .btn-info:active, .open .dropdown-toggle.btn-info { background-image: none } .btn-info.active[disabled], .btn-info.disabled, .btn-info.disabled.active, .btn-info.disabled:active, .btn-info.disabled:focus, .btn-info.disabled:hover, .btn-info[disabled], .btn-info[disabled]:active, .btn-info[disabled]:focus, .btn-info[disabled]:hover, fieldset[disabled] .btn-info, fieldset[disabled] .btn-info.active, fieldset[disabled] .btn-info:active, fieldset[disabled] .btn-info:focus, fieldset[disabled] .btn-info:hover { background-color: #26d7d9; border-color: #26d7d9 } .btn-default { background-color: #c2c2c2; border-color: #c2c2c2; color: #FFF } .btn-default.active, .btn-default:active, .btn-default:focus, .btn-default:hover, .open .dropdown-toggle.btn-default { background-color: #bababa; border-color: #bababa; color: #FFF } .btn-default.active, .btn-default:active, .open .dropdown-toggle.btn-default { background-image: none } .btn-default.active[disabled], .btn-default.disabled, .btn-default.disabled.active, .btn-default.disabled:active, .btn-default.disabled:focus, .btn-default.disabled:hover, .btn-default[disabled], .btn-default[disabled]:active, .btn-default[disabled]:focus, .btn-default[disabled]:hover, fieldset[disabled] .btn-default, fieldset[disabled] .btn-default.active, fieldset[disabled] .btn-default:active, fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default:hover { background-color: #ccc; border-color: #ccc } .btn-warning { background-color: #f8ac59; border-color: #f8ac59; color: #FFF } .btn-warning.active, .btn-warning:active, .btn-warning:focus, .btn-warning:hover, .open .dropdown-toggle.btn-warning { background-color: #f7a54a; border-color: #f7a54a; color: #FFF } .btn-warning.active, .btn-warning:active, .open .dropdown-toggle.btn-warning { background-image: none } .btn-warning.active[disabled], .btn-warning.disabled, .btn-warning.disabled.active, .btn-warning.disabled:active, .btn-warning.disabled:focus, .btn-warning.disabled:hover, .btn-warning[disabled], .btn-warning[disabled]:active, .btn-warning[disabled]:focus, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning, fieldset[disabled] .btn-warning.active, fieldset[disabled] .btn-warning:active, fieldset[disabled] .btn-warning:focus, fieldset[disabled] .btn-warning:hover { background-color: #f9b66d; border-color: #f9b66d } .btn-danger { background-color: #F25929; border-color: rgba(255, 255, 255, 0); color: #FFF } .btn-danger.active, .btn-danger:active, .btn-danger:focus, .btn-danger:hover, .btn-danger:active:focus, .btn-danger:active:hover, .open .dropdown-toggle.btn-danger { background-color: #CA390C; border-color: rgba(255, 255, 255, 0); color: #FFF } .btn-danger.active, .btn-danger:active, .open .dropdown-toggle.btn-danger { background-image: none } .btn-danger.active[disabled], .btn-danger.disabled, .btn-danger.disabled.active, .btn-danger.disabled:active, .btn-danger.disabled:focus, .btn-danger.disabled:hover, .btn-danger[disabled], .btn-danger[disabled]:active, .btn-danger[disabled]:focus, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger, fieldset[disabled] .btn-danger.active, fieldset[disabled] .btn-danger:active, fieldset[disabled] .btn-danger:focus, fieldset[disabled] .btn-danger:hover { background-color: #ef6776; border-color: #ef6776 } .btn-link { color: inherit } .btn-link.active, .btn-link:active, .btn-link:focus, .btn-link:hover, .open .dropdown-toggle.btn-link { color: #1ab394; text-decoration: none } .btn-link.active, .btn-link:active, .open .dropdown-toggle.btn-link { background-image: none } .btn-link.active[disabled], .btn-link.disabled, .btn-link.disabled.active, .btn-link.disabled:active, .btn-link.disabled:focus, .btn-link.disabled:hover, .btn-link[disabled], .btn-link[disabled]:active, .btn-link[disabled]:focus, .btn-link[disabled]:hover, fieldset[disabled] .btn-link, fieldset[disabled] .btn-link.active, fieldset[disabled] .btn-link:active, fieldset[disabled] .btn-link:focus, fieldset[disabled] .btn-link:hover { color: #cacaca } .btn-white { color: inherit; background: #fff; border: 1px solid #e7eaec } .btn-white.active, .btn-white:active, .btn-white:focus, .btn-white:hover, .open .dropdown-toggle.btn-white { color: inherit; border: 1px solid #d2d2d2 } .btn-white.active, .btn-white:active { box-shadow: 0 2px 5px rgba(0, 0, 0, .15) inset } .btn-white.active, .btn-white:active, .open .dropdown-toggle.btn-white { background-image: none } .btn-white.active[disabled], .btn-white.disabled, .btn-white.disabled.active, .btn-white.disabled:active, .btn-white.disabled:focus, .btn-white.disabled:hover, .btn-white[disabled], .btn-white[disabled]:active, .btn-white[disabled]:focus, .btn-white[disabled]:hover, fieldset[disabled] .btn-white, fieldset[disabled] .btn-white.active, fieldset[disabled] .btn-white:active, fieldset[disabled] .btn-white:focus, fieldset[disabled] .btn-white:hover { color: #cacaca } .form-control, .form-control:focus, .has-error .form-control:focus, .has-success .form-control:focus, .has-warning .form-control:focus, .navbar-collapse, .navbar-form, .navbar-form-custom .form-control:focus, .navbar-form-custom .form-control:hover, .open .btn.dropdown-toggle, .panel, .popover, .progress, .progress-bar { box-shadow: none } .btn-outline { color: inherit; background-color: transparent; -webkit-transition: all .5s; transition: all .5s } .btn-rounded { border-radius: 50px } .btn-large-dim { width: 90px; height: 90px; font-size: 42px } button.dim { display: inline-block; color: #fff; text-decoration: none; text-transform: uppercase; text-align: center; padding-top: 6px; margin-right: 10px; position: relative; cursor: pointer; border-radius: 5px; font-weight: 600; margin-bottom: 20px !important } button.dim:active { top: 3px } button.btn-primary.dim { box-shadow: inset 0 0 0 #16987e, 0 5px 0 0 #16987e, 0 10px 5px #999 } button.btn-primary.dim:active { box-shadow: inset 0 0 0 #16987e, 0 2px 0 0 #16987e, 0 5px 3px #999 } button.btn-default.dim { box-shadow: inset 0 0 0 #b3b3b3, 0 5px 0 0 #b3b3b3, 0 10px 5px #999 } button.btn-default.dim:active { box-shadow: inset 0 0 0 #b3b3b3, 0 2px 0 0 #b3b3b3, 0 5px 3px #999 } button.btn-warning.dim { box-shadow: inset 0 0 0 #f79d3c, 0 5px 0 0 #f79d3c, 0 10px 5px #999 } button.btn-warning.dim:active { box-shadow: inset 0 0 0 #f79d3c, 0 2px 0 0 #f79d3c, 0 5px 3px #999 } button.btn-info.dim { box-shadow: inset 0 0 0 #1eacae, 0 5px 0 0 #1eacae, 0 10px 5px #999 } button.btn-info.dim:active { box-shadow: inset 0 0 0 #1eacae, 0 2px 0 0 #1eacae, 0 5px 3px #999 } button.btn-success.dim { box-shadow: inset 0 0 0 #1872ab, 0 5px 0 0 #1872ab, 0 10px 5px #999 } button.btn-success.dim:active { box-shadow: inset 0 0 0 #1872ab, 0 2px 0 0 #1872ab, 0 5px 3px #999 } button.btn-danger.dim { box-shadow: inset 0 0 0 #ea394c, 0 5px 0 0 #ea394c, 0 10px 5px #999 } button.btn-danger.dim:active { box-shadow: inset 0 0 0 #ea394c, 0 2px 0 0 #ea394c, 0 5px 3px #999 } button.dim:before { font-size: 50px; line-height: 1em; font-weight: 400; color: #fff; display: block; padding-top: 10px } button.dim:active:before { top: 7px; font-size: 50px } .label { background-color: #d1dade; color: #5e5e5e; font-size: 10px; font-weight: 600; padding: 3px 8px; text-shadow: none } .badge { background-color: #d1dade; color: #5e5e5e; font-size: 11px; font-weight: 600; padding-bottom: 4px; padding-left: 6px; padding-right: 6px; text-shadow: none } .badge-primary, .label-primary { background-color: #1ab394; color: #FFF } .badge-success, .label-success { background-color: #1c84c6; color: #FFF } .badge-warning, .label-warning { background-color: #f8ac59; color: #FFF } .badge-warning-light, .label-warning-light { background-color: #f8ac59; color: #fff } .badge-danger, .label-danger { background-color: #ed5565; color: #FFF } .badge-info, .label-info { background-color: #23c6c8; color: #FFF } .badge-inverse, .label-inverse { background-color: #262626; color: #FFF } .badge-white, .label-white { background-color: #FFF; color: #5E5E5E } .badge-disable, .label-white { background-color: #2A2E36; color: #8B91A0 } .chosen-container-single .chosen-single { background: #fff; box-shadow: none; -moz-box-sizing: border-box; background-color: #FFF; border: 1px solid #CBD5DD; border-radius: 2px; cursor: text; height: auto !important; margin: 0; min-height: 30px; overflow: hidden; padding: 4px 12px; position: relative; width: 100% } .chosen-container-multi .chosen-choices li.search-choice { background: #f1f1f1; border: 1px solid #ededed; border-radius: 2px; box-shadow: none; color: #333; cursor: default; line-height: 13px; margin: 3px 0 3px 5px; padding: 3px 20px 3px 5px; position: relative } .pagination > .active > a, .pagination > .active > a:focus, .pagination > .active > a:hover, .pagination > .active > span, .pagination > .active > span:focus, .pagination > .active > span:hover { background-color: #f4f4f4; border-color: #DDD; color: inherit; cursor: default; z-index: 2 } .pagination > li > a, .pagination > li > span { background-color: #FFF; border: 1px solid #DDD; color: inherit; float: left; line-height: 1.42857; margin-left: -1px; padding: 4px 10px; position: relative; text-decoration: none } .tooltip-inner { background-color: #2F4050 } .tooltip.top .tooltip-arrow { border-top-color: #2F4050 } .tooltip.right .tooltip-arrow { border-right-color: #2F4050 } .tooltip.bottom .tooltip-arrow { border-bottom-color: #2F4050 } .tooltip.left .tooltip-arrow { border-left-color: #2F4050 } .easypiechart { position: relative; text-align: center } .easypiechart .h2 { margin-left: 10px; margin-top: 10px; display: inline-block } .easypiechart canvas { top: 0; left: 0 } .easypiechart .easypie-text { line-height: 1; position: absolute; top: 33px; width: 100%; z-index: 1 } .easypiechart img { margin-top: -4px } .jqstooltip { box-sizing: content-box } .fc-state-default { background-color: #fff; background-image: none; background-repeat: repeat-x; box-shadow: none; color: #333; text-shadow: none; border: 1px solid } .fc-button { color: inherit; border: 1px solid #e7eaec; cursor: pointer; display: inline-block; height: 1.9em; line-height: 1.9em; overflow: hidden; padding: 0 .6em; position: relative; white-space: nowrap } .fc-state-active { background-color: #1ab394; border-color: #1ab394; color: #fff } .fc-header-title h2 { font-size: 16px; font-weight: 600; color: inherit } .fc-content .fc-widget-content, .fc-content .fc-widget-header { border-color: #e7eaec; font-weight: 400 } .fc-border-separate tbody { background-color: #F8F8F8 } .fc-state-highlight { background: none repeat scroll 0 0 #FCF8E3 } .external-event { padding: 5px 10px; border-radius: 2px; cursor: pointer; margin-bottom: 5px } .fc-ltr .fc-event-hori.fc-event-end, .fc-rtl .fc-event-hori.fc-event-start { border-radius: 2px } .fc-agenda .fc-event-time, .fc-event, .fc-event a { padding: 4px 6px; background-color: #1ab394; border-color: #1ab394 } .fc-event-time, .fc-event-title { color: #717171; padding: 0 1px } .ui-calendar .fc-event-time, .ui-calendar .fc-event-title { color: #fff } .chat-activity-list .chat-element { border-bottom: 1px solid #e7eaec } .chat-element:first-child { margin-top: 0 } .chat-element { padding-bottom: 15px } .chat-element, .chat-element .media { margin-top: 15px } .chat-element, .media-body { overflow: hidden } .media-body { display: block; width: auto } .chat-element > .pull-left { margin-right: 10px } .chat-element img.img-circle, .dropdown-messages-box img.img-circle { width: 38px; height: 38px } .chat-element .well { border: 1px solid #e7eaec; box-shadow: none; margin-top: 10px; margin-bottom: 5px; padding: 10px 20px; font-size: 11px; line-height: 16px } .chat-element .actions { margin-top: 10px } .chat-element .photos { margin: 10px 0 } .right.chat-element > .pull-right { margin-left: 10px } .chat-photo { max-height: 180px; border-radius: 4px; overflow: hidden; margin-right: 10px; margin-bottom: 10px } .chat { margin: 0; padding: 0; list-style: none } .chat li { margin-bottom: 10px; padding-bottom: 5px; border-bottom: 1px dotted #B3A9A9 } .chat li.left .chat-body { margin-left: 60px } .chat li.right .chat-body { margin-right: 60px } .chat li .chat-body p { margin: 0; color: #777 } .chat .glyphicon, .panel .slidedown .glyphicon { margin-right: 5px } .chat-panel .panel-body { height: 350px; overflow-y: scroll } a.list-group-item.active, a.list-group-item.active:focus, a.list-group-item.active:hover { background-color: #1ab394; border-color: #1ab394; color: #FFF; z-index: 2 } .list-group-item-heading { margin-top: 10px } .list-group-item-text { margin: 0 0 10px; color: inherit; font-size: 12px; line-height: inherit } .no-padding .list-group-item { border-left: none; border-right: none; border-bottom: none } .no-padding .list-group-item:first-child { border-left: none; border-right: none; border-bottom: none; border-top: none } .no-padding .list-group { margin-bottom: 0 } .list-group-item { background-color: inherit; border: 1px solid #e7eaec; display: block; margin-bottom: -1px; padding: 10px 15px; position: relative } .elements-list .list-group-item { border-left: none; border-right: none; padding: 15px 25px } .elements-list .list-group-item:first-child { border-left: none; border-right: none; border-top: none !important } .elements-list .list-group { margin-bottom: 0 } .elements-list a { color: inherit } .elements-list .list-group-item.active, .elements-list .list-group-item:hover { background: #f3f3f4; color: inherit; border-color: #e7eaec; border-radius: 0 } .elements-list li.active { -webkit-transition: none; transition: none } .element-detail-box { padding: 25px } .flot-chart { display: block; height: 200px } .widget .flot-chart.dashboard-chart { display: block; height: 120px; margin-top: 40px } .flot-chart.dashboard-chart { display: block; height: 180px; margin-top: 40px } .flot-chart-content { width: 100%; height: 100% } .flot-chart-pie-content { width: 200px; height: 200px; margin: auto } .jqstooltip { position: absolute; display: block; left: 0; top: 0; visibility: hidden; background: #2b303a; background-color: rgba(43, 48, 58, .8); color: #fff; text-align: left; white-space: nowrap; z-index: 10000; padding: 5px; min-height: 22px; border-radius: 3px } .jqsfield { color: #fff; text-align: left } .h-200 { min-height: 200px } .legendLabel { padding-left: 5px } .stat-list li:first-child { margin-top: 0 } .stat-list { list-style: none; padding: 0; margin: 0 } .stat-percent { float: right } .stat-list li { margin-top: 15px; position: relative } table.dataTable thead .sorting, table.dataTable thead .sorting_asc:after, table.dataTable thead .sorting_asc_disabled, table.dataTable thead .sorting_desc, table.dataTable thead .sorting_desc_disabled { background: 0 0 } table.dataTable thead .sorting_asc:after { float: right; font-family: fontawesome } table.dataTable thead .sorting_desc:after { content: "\f0dd"; float: right; font-family: fontawesome } table.dataTable thead .sorting:after { content: "\f0dc"; float: right; font-family: fontawesome; color: rgba(50, 50, 50, .5) } .dataTables_wrapper { padding-bottom: 30px } .img-circle { border-radius: 50% } .btn-circle { width: 30px; height: 30px; padding: 6px 0; border-radius: 15px; text-align: center; font-size: 12px; line-height: 1.428571429 } .btn-circle.btn-lg { width: 50px; height: 50px; padding: 10px 16px; border-radius: 25px; font-size: 18px; line-height: 1.33 } .btn-circle.btn-xl { width: 70px; height: 70px; padding: 10px 16px; border-radius: 35px; font-size: 24px; line-height: 1.33 } .show-grid [class^=col-] { padding-top: 10px; padding-bottom: 10px; border: 1px solid #ddd; background-color: #eee !important } .show-grid { margin: 15px 0 } .css-animation-box h1 { font-size: 44px } .animation-efect-links a { padding: 4px 6px; font-size: 12px } #animation_box { background-color: #f9f8f8; border-radius: 16px; width: 80%; margin: 0 auto; padding-top: 80px } .animation-text-box { position: absolute; margin-top: 40px; left: 50%; margin-left: -100px; width: 200px } .animation-text-info { position: absolute; margin-top: -60px; left: 50%; margin-left: -100px; width: 200px; font-size: 10px } .animation-text-box h2 { font-size: 54px; font-weight: 600; margin-bottom: 5px } .animation-text-box p { font-size: 12px; text-transform: uppercase } .pace { -webkit-pointer-events: none; pointer-events: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none } .pace .pace-progress { background: #1ab394; position: fixed; z-index: 2000; top: 0; width: 100%; height: 2px } .pace-inactive { display: none } .widget { border-radius: 5px; padding: 15px 20px; margin-bottom: 10px; margin-top: 10px } .widget.style1 h2 { font-size: 30px } .widget h2, .widget h3 { margin-top: 5px; margin-bottom: 0 } .widget-text-box { padding: 20px; border: 1px solid #e7eaec; background: #fff } .widget-head-color-box { border-radius: 5px 5px 0 0; margin-top: 10px } .widget .flot-chart { height: 100px } .vertical-align div { display: inline-block; vertical-align: middle } .vertical-align h2, .vertical-align h3 { margin: 0 } .todo-list { list-style: none outside none; margin: 0; padding: 0; font-size: 14px } .todo-list.small-list { font-size: 12px } .todo-list.small-list > li { background: #f3f3f4; border-left: none; border-right: none; border-radius: 4px; color: inherit; margin-bottom: 2px; padding: 6px 6px 6px 12px } .todo-list.small-list .btn-group-xs > .btn, .todo-list.small-list .btn-xs { border-radius: 5px; font-size: 10px; line-height: 1.5; padding: 1px 2px 1px 5px } .todo-list > li { background: #f3f3f4; border-left: 6px solid #e7eaec; border-right: 6px solid #e7eaec; border-radius: 4px; color: inherit; margin-bottom: 2px; padding: 10px } .todo-list .handle { cursor: move; display: inline-block; font-size: 16px; margin: 0 5px } .todo-list > li .label { font-size: 9px; margin-left: 10px } .check-link { font-size: 16px } .todo-completed { text-decoration: line-through } .geo-statistic h1 { font-size: 36px; margin-bottom: 0 } .glyphicon.fa { font-family: FontAwesome } .inline { display: inline-block !important } .input-s-sm { width: 120px } .input-s { width: 200px } .input-s-lg { width: 250px } .i-checks { padding-left: 0 } .form-control, .single-line { background-color: #FFF; background-image: none; border: 1px solid #e5e6e7; border-radius: 1px; color: inherit; display: block; padding: 6px 12px; -webkit-transition: border-color .15s ease-in-out 0s, box-shadow .15s ease-in-out 0s; transition: border-color .15s ease-in-out 0s, box-shadow .15s ease-in-out 0s; width: 100%; font-size: 14px } .form-control:focus, .single-line:focus { border-color: #1ab394 !important } .has-success .form-control { border-color: #1ab394 } .has-warning .form-control { border-color: #f8ac59 } .has-error .form-control { border-color: #ed5565 } .has-success .control-label { color: #1ab394 } .has-warning .control-label { color: #f8ac59 } .has-error .control-label { color: #ed5565 } .input-group-addon { background-color: #fff; border: 1px solid #E5E6E7; border-radius: 1px; color: inherit; font-size: 14px; font-weight: 400; line-height: 1; padding: 6px 12px; text-align: center } .spinner-buttons.input-group-btn .btn-xs { line-height: 1.13 } .spinner-buttons.input-group-btn { width: 20% } .noUi-connect { background: none repeat scroll 0 0 #1ab394; box-shadow: none } .slider_red .noUi-connect { background: none repeat scroll 0 0 #ed5565; box-shadow: none } .ui-sortable .ibox-title { cursor: move } .ui-sortable-placeholder { border: 1px dashed #cecece !important; visibility: visible !important; background: #e7eaec } .ibox.ui-sortable-placeholder { margin: 0 0 23px !important } .tabs-container .panel-body { background: #fff; border: 1px solid #e7eaec; border-radius: 2px; padding: 20px; position: relative } .tabs-container .nav-tabs > li.active > a, .tabs-container .nav-tabs > li.active > a:focus, .tabs-container .nav-tabs > li.active > a:hover { background-color: #fff } .tabs-container .nav-tabs > li { float: left; margin-bottom: -1px } .tabs-container .nav-tabs > li.active > a, .tabs-container .nav-tabs > li.active > a:focus, .tabs-container .nav-tabs > li.active > a:hover { border: 1px solid #e7eaec; border-bottom-color: transparent } .tabs-container .nav-tabs { border-bottom: 1px solid #e7eaec } .tabs-container .tab-pane .panel-body { border-top: none } .tabs-container .tabs-left .tab-pane .panel-body, .tabs-container .tabs-right .tab-pane .panel-body { border-top: 1px solid #e7eaec } .tabs-container .nav-tabs > li a:hover { background: 0 0; border-color: transparent } .tabs-container .tabs-below > .nav-tabs, .tabs-container .tabs-left > .nav-tabs, .tabs-container .tabs-right > .nav-tabs { border-bottom: 0 } .tabs-container .tabs-left .panel-body { position: static } .tabs-container .tabs-left > .nav-tabs, .tabs-container .tabs-right > .nav-tabs { width: 20% } .tabs-container .tabs-left .panel-body { width: 80%; margin-left: 20% } .tabs-container .tabs-right .panel-body { width: 80%; margin-right: 20% } .tabs-container .pill-content > .pill-pane, .tabs-container .tab-content > .tab-pane { display: none } .tabs-container .pill-content > .active, .tabs-container .tab-content > .active { display: block } .tabs-container .tabs-below > .nav-tabs { border-top: 1px solid #e7eaec } .tabs-container .tabs-below > .nav-tabs > li { margin-top: -1px; margin-bottom: 0 } .tabs-container .tabs-below > .nav-tabs > li > a { border-radius: 0 0 4px 4px } .tabs-container .tabs-below > .nav-tabs > li > a:focus, .tabs-container .tabs-below > .nav-tabs > li > a:hover { border-top-color: #e7eaec; border-bottom-color: transparent } .tabs-container .tabs-left > .nav-tabs > li, .tabs-container .tabs-right > .nav-tabs > li { float: none } .tabs-container .tabs-left > .nav-tabs > li > a, .tabs-container .tabs-right > .nav-tabs > li > a { min-width: 74px; margin-right: 0; margin-bottom: 3px } .tabs-container .tabs-left > .nav-tabs { float: left; margin-right: 19px } .tabs-container .tabs-left > .nav-tabs > li > a { margin-right: -1px; border-radius: 4px 0 0 4px } .tabs-container .tabs-left > .nav-tabs .active > a, .tabs-container .tabs-left > .nav-tabs .active > a:focus, .tabs-container .tabs-left > .nav-tabs .active > a:hover { border-color: #e7eaec transparent #e7eaec #e7eaec; *border-right-color: #fff } .tabs-container .tabs-right > .nav-tabs { float: right; margin-left: 19px } .tabs-container .tabs-right > .nav-tabs > li > a { margin-left: -1px; border-radius: 0 4px 4px 0 } .tabs-container .tabs-right > .nav-tabs .active > a, .tabs-container .tabs-right > .nav-tabs .active > a:focus, .tabs-container .tabs-right > .nav-tabs .active > a:hover { border-color: #e7eaec #e7eaec #e7eaec transparent; *border-left-color: #fff; z-index: 1 } .onoffswitch { position: relative; width: 54px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none } .onoffswitch-checkbox { display: none } .onoffswitch-label { display: block; overflow: hidden; cursor: pointer; border: 2px solid #1AB394; border-radius: 3px } .onoffswitch-inner { display: block; width: 200%; margin-left: -100%; -webkit-transition: margin .3s ease-in 0s; transition: margin .3s ease-in 0s } .onoffswitch-inner:after, .onoffswitch-inner:before { display: block; float: left; width: 50%; height: 16px; padding: 0; line-height: 16px; font-size: 10px; font-family: Trebuchet, Arial, sans-serif; font-weight: 700; box-sizing: border-box } .onoffswitch-inner:before { content: "ON"; padding-left: 7px; background-color: #1AB394; color: #FFF } .onoffswitch-inner:after { content: "OFF"; padding-right: 7px; background-color: #FFF; color: #919191; text-align: right } .onoffswitch-switch { display: block; width: 18px; margin: 0; background: #FFF; border: 2px solid #1AB394; border-radius: 3px; position: absolute; top: 0; bottom: 0; right: 36px; -webkit-transition: all .3s ease-in 0s; transition: all .3s ease-in 0s } .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { margin-left: 0 } .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch { right: 0 } .dd { position: relative; display: block; margin: 0; padding: 0; list-style: none; font-size: 13px; line-height: 20px } .dd-list { display: block; position: relative; margin: 0; padding: 0; list-style: none } .dd-list .dd-list { padding-left: 30px } .dd-collapsed .dd-list { display: none } .dd-empty, .dd-item, .dd-placeholder { display: block; position: relative; margin: 0; padding: 0; min-height: 20px; font-size: 13px; line-height: 20px } .dd-handle { display: block; margin: 5px 0; padding: 5px 10px; color: #333; text-decoration: none; border: 1px solid #e7eaec; background: #f5f5f5; border-radius: 3px; box-sizing: border-box; -moz-box-sizing: border-box } .dd-handle span { font-weight: 700 } .dd-handle:hover { background: #f0f0f0; cursor: pointer; font-weight: 700 } .dd-item > button { display: block; position: relative; cursor: pointer; float: left; width: 25px; height: 20px; margin: 5px 0; padding: 0; text-indent: 100%; white-space: nowrap; overflow: hidden; border: 0; background: 0 0; font-size: 12px; line-height: 1; text-align: center; font-weight: 700 } .dd-item > button:before { content: '+'; display: block; position: absolute; width: 100%; text-align: center; text-indent: 0 } .dd-item > button[data-action=collapse]:before { content: '-' } #nestable2 .dd-item > button { font-family: FontAwesome; height: 34px; width: 33px; color: #c1c1c1 } #nestable2 .dd-item > button:before { content: "\f067" } #nestable2 .dd-item > button[data-action=collapse]:before { content: "\f068" } .dd-empty, .dd-placeholder { margin: 5px 0; padding: 0; min-height: 30px; background: #f2fbff; border: 1px dashed #b6bcbf; box-sizing: border-box; -moz-box-sizing: border-box } .dd-empty { border: 1px dashed #bbb; min-height: 100px; background-color: #e5e5e5; background-image: -webkit-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff), -webkit-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff); background-image: linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff), linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff); background-size: 60px 60px; background-position: 0 0, 30px 30px } .dd-dragel { position: absolute; z-index: 9999; pointer-events: none } .dd-dragel > .dd-item .dd-handle { margin-top: 0 } .dd-dragel .dd-handle { box-shadow: 2px 4px 6px 0 rgba(0, 0, 0, .1) } .nestable-lists { display: block; clear: both; padding: 30px 0; width: 100%; border: 0; border-top: 2px solid #ddd; border-bottom: 2px solid #ddd } #nestable-menu { padding: 0; margin: 10px 0 20px } #nestable-output, #nestable2-output { width: 100%; line-height: 1.333333em; font-family: lucida grande, lucida sans unicode, helvetica, arial, sans-serif } #nestable2 .dd-handle { color: inherit; border: 1px dashed #e7eaec; background: #f3f3f4; padding: 10px } #nestable2 span.label { margin-right: 10px } #nestable-output, #nestable2-output { font-size: 12px; padding: 25px; box-sizing: border-box; -moz-box-sizing: border-box } .CodeMirror { border: 1px solid #eee; height: auto } .CodeMirror-scroll { overflow-y: hidden; overflow-x: auto } .google-map { height: 300px } label.error { color: #cc5965; display: inline-block; margin-left: 5px } .form-control.error { border: 1px dotted #cc5965 } .gridStyle { border: 1px solid #d4d4d4; width: 100%; height: 400px } .gridStyle2 { border: 1px solid #d4d4d4; width: 500px; height: 300px } .ngH eaderCell { border-right: none; border-bottom: 1px solid #e7eaec } .ngCell { border-right: none } .ngTopPanel { background: #F5F5F6 } .ngRow.even { background: #f9f9f9 } .ngRow.selected { background: #EBF2F1 } .ngRow { border-bottom: 1px solid #e7eaec } .ngCell { background-color: transparent } .ngHeaderCell { border-right: none } #toast-container > .toast { background-image: none !important } #toast-container > .toast:before { position: fixed; font-family: FontAwesome; font-size: 24px; line-height: 24px; float: left; color: #FFF; padding-right: .5em; margin: auto .5em auto -1.5em } #toast-container > div { box-shadow: 0 0 3px #999; opacity: .9; -ms-filter: alpha(opacity=90); filter: alpha(opacity=90) } #toast-container > :hover { box-shadow: 0 0 4px #999; opacity: 1; -ms-filter: alpha(opacity=100); filter: alpha(opacity=100); cursor: pointer } .toast, .toast-success { background-color: #1ab394 } .toast-error { background-color: #ed5565 } .toast-info { background-color: #23c6c8 } .toast-warning { background-color: #f8ac59 } .toast-top-full-width { margin-top: 20px } .toast-bottom-full-width { margin-bottom: 20px } .img-container, .img-preview { overflow: hidden; text-align: center; width: 100% } .img-preview-sm { height: 130px; width: 200px } .forum-post-container .media { margin: 10px; padding: 20px 10px; border-bottom: 1px solid #f1f1f1 } .forum-avatar { float: left; margin-right: 20px; text-align: center; width: 110px } .forum-avatar .img-circle { height: 48px; width: 48px } .author-info { color: #676a6c; font-size: 11px; margin-top: 5px; text-align: center } .forum-post-info { padding: 9px 12px 6px; background: #f9f9f9; border: 1px solid #f1f1f1 } .media-body > .media { background: #f9f9f9; border-radius: 3px; border: 1px solid #f1f1f1 } .forum-post-container .media-body .photos { margin: 10px 0 } .forum-photo { max-width: 140px; border-radius: 3px } .media-body > .media .forum-avatar { width: 70px; margin-right: 10px } .media-body > .media .forum-avatar .img-circle { height: 38px; width: 38px } .mid-icon { font-size: 66px } .forum-item { margin: 10px 0; padding: 10px 0 20px; border-bottom: 1px solid #f1f1f1 } .views-number { font-size: 24px; line-height: 18px; font-weight: 400 } .forum-container, .forum-post-container { padding: 30px !important } .forum-item small { color: #999 } .forum-item .forum-sub-title { color: #999; margin-left: 50px } .forum-title { margin: 15px 0 } .forum-info { text-align: center } .forum-desc { color: #999 } .forum-icon { float: left; width: 30px; margin-right: 20px; text-align: center } a.forum-item-title { color: inherit; display: block; font-size: 18px; font-weight: 600 } a.forum-item-title:hover { color: inherit } .forum-icon .fa { font-size: 30px; margin-top: 8px; color: #9b9b9b } .forum-item.active .fa, .forum-item.active a.forum-item-title { color: #1ab394 } @media (max-width: 992px) { .forum-info { margin: 15px 0 10px; display: none } .forum-desc { float: none !important } } .vertical-container { width: 90%; max-width: 1170px; margin: 0 auto } .vertical-container::after { content: ''; display: table; clear: both } #vertical-timeline { position: relative; padding: 0; margin-top: 2em; margin-bottom: 2em } #vertical-timeline::before { content: ''; position: absolute; top: 0; left: 18px; height: 100%; width: 4px; background: #f1f1f1 } .vertical-timeline-content .btn { float: right } #vertical-timeline.light-timeline:before { background: #e7eaec } .dark-timeline .vertical-timeline-content:before { border-color: transparent #f5f5f5 transparent transparent } .dark-timeline.center-orientation .vertical-timeline-content:before { border-color: transparent transparent transparent #f5f5f5 } .dark-timeline .vertical-timeline-block:nth-child(2n) .vertical-timeline-content:before, .dark-timeline.center-orientation .vertical-timeline-block:nth-child(2n) .vertical-timeline-content:before { border-color: transparent #f5f5f5 transparent transparent } .dark-timeline .vertical-timeline-content, .dark-timeline.center-orientation .vertical-timeline-content { background: #f5f5f5 } @media only screen and (min-width: 1170px) { #vertical-timeline.center-orientation { margin-top: 3em; margin-bottom: 3em } #vertical-timeline.center-orientation:before { left: 50%; margin-left: -2px } } @media only screen and (max-width: 1170px) { .center-orientation.dark-timeline .vertical-timeline-content:before { border-color: transparent #f5f5f5 transparent transparent } } .vertical-timeline-block { position: relative; margin: 2em 0 } .vertical-timeline-block:after { content: ""; display: table; clear: both } .vertical-timeline-block:first-child { margin-top: 0 } .vertical-timeline-block:last-child { margin-bottom: 0 } @media only screen and (min-width: 1170px) { .center-orientation .vertical-timeline-block { margin: 4em 0 } .center-orientation .vertical-timeline-block:first-child { margin-top: 0 } .center-orientation .vertical-timeline-block:last-child { margin-bottom: 0 } } .vertical-timeline-icon { position: absolute; top: 0; left: 0; width: 40px; height: 40px; border-radius: 50%; font-size: 16px; border: 3px solid #f1f1f1; text-align: center } .vertical-timeline-icon i { display: block; width: 24px; height: 24px; position: relative; left: 50%; top: 50%; margin-left: -12px; margin-top: -9px } @media only screen and (min-width: 1170px) { .center-orientation .vertical-timeline-icon { width: 50px; height: 50px; left: 50%; margin-left: -25px; -webkit-transform: translateZ(0); -webkit-backface-visibility: hidden; font-size: 19px } .center-orientation .vertical-timeline-icon i { margin-left: -12px; margin-top: -10px } .center-orientation .cssanimations .vertical-timeline-icon.is-hidden { visibility: hidden } } .vertical-timeline-content { position: relative; margin-left: 60px; background: #fff; border-radius: .25em; padding: 1em } .vertical-timeline-content:after { content: ""; display: table; clear: both } .vertical-timeline-content h2 { font-weight: 400; margin-top: 4px } .vertical-timeline-content p { margin: 1em 0; line-height: 1.6 } .vertical-timeline-content .vertical-date { float: left; font-weight: 500 } .vertical-date small { color: #1ab394; font-weight: 400 } .vertical-timeline-content::before { content: ''; position: absolute; top: 16px; right: 100%; height: 0; width: 0; border: 7px solid transparent; border-right: 7px solid #fff } @media only screen and (min-width: 768px) { .vertical-timeline-content h2 { font-size: 18px } .vertical-timeline-content p { font-size: 13px } } @media only screen and (min-width: 1170px) { .center-orientation .vertical-timeline-content { margin-left: 0; padding: 1.6em; width: 45% } .center-orientation .vertical-timeline-content::before { top: 24px; left: 100%; border-color: transparent; border-left-color: #fff } .center-orientation .vertical-timeline-content .btn { float: left } .center-orientation .vertical-timeline-content .vertical-date { position: absolute; width: 100%; left: 122%; top: 2px; font-size: 14px } .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content { float: right } .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content::before { top: 24px; left: auto; right: 100%; border-color: transparent; border-right-color: #fff } .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content .btn { float: right } .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content .vertical-date { left: auto; right: 122%; text-align: right } .center-orientation .cssanimations .vertical-timeline-content.is-hidden { visibility: hidden } } .sidebard-panel { width: 220px; background: #ebebed; padding: 10px 20px; position: absolute; right: 0 } .sidebard-panel .feed-element img.img-circle { width: 32px; height: 32px } .media-body, .sidebard-panel .feed-element, .sidebard-panel p { font-size: 12px } .sidebard-panel .feed-element { margin-top: 20px; padding-bottom: 0 } .sidebard-panel .list-group { margin-bottom: 10px } .sidebard-panel .list-group .list-group-item { padding: 5px 0; font-size: 12px; border: 0 } .sidebar-content .wrapper, .wrapper.sidebar-content { padding-right: 240px !important } #right-sidebar { background-color: #fff; border-left: 1px solid #e7eaec; border-top: 1px solid #e7eaec; overflow: hidden; position: fixed; top: 60px; width: 260px !important; z-index: 1009; bottom: 0; right: -260px } #right-sidebar.sidebar-open { right: 0 } #right-sidebar.sidebar-open.sidebar-top { top: 0; border-top: none } .sidebar-container ul.nav-tabs { border: none } .sidebar-container ul.nav-tabs.navs-4 li { width: 25% } .sidebar-container ul.nav-tabs.navs-3 li { width: 33.3333% } .sidebar-container ul.nav-tabs.navs-2 li { width: 50% } .sidebar-container ul.nav-tabs li { border: none } .sidebar-container ul.nav-tabs li a { border: none; padding: 12px 10px; margin: 0; border-radius: 0; background: #2f4050; color: #fff; text-align: center; border-right: 1px solid #334556 } .sidebar-container ul.nav-tabs li.active a { border: none; background: #f9f9f9; color: #676a6c; font-weight: 700 } .sidebar-container .nav-tabs > li.active > a:focus, .sidebar-container .nav-tabs > li.active > a:hover { border: none } .sidebar-container ul.sidebar-list { margin: 0; padding: 0 } .sidebar-container ul.sidebar-list li { border-bottom: 1px solid #e7eaec; padding: 15px 20px; list-style: none; font-size: 12px } .sidebar-container .sidebar-message:nth-child(2n+2) { background: #f9f9f9 } .sidebar-container ul.sidebar-list li a { text-decoration: none; color: inherit } .sidebar-container .sidebar-content { padding: 15px 20px; font-size: 12px } .sidebar-container .sidebar-title { background: #f9f9f9; padding: 20px; border-bottom: 1px solid #e7eaec } .sidebar-container .sidebar-title h3 { margin-bottom: 3px; padding-left: 2px } .sidebar-container .tab-content h4 { margin-bottom: 5px } .sidebar-container .sidebar-message > a > .pull-left { margin-right: 10px } .sidebar-container .sidebar-message > a { text-decoration: none; color: inherit } .sidebar-container .sidebar-message { padding: 15px 20px } .sidebar-container .sidebar-message .message-avatar { height: 38px; width: 38px; border-radius: 50% } .sidebar-container .setings-item { padding: 15px 20px; border-bottom: 1px solid #e7eaec } body { font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 13px; color: #676a6c; overflow-x: hidden } body, body.full-height-layout #page-wrapper, body.full-height-layout #wrapper, html { height: 100%; } #page-wrapper { min-height: auto } body.boxed-layout { background: url(patterns/shattered.png) } body.boxed-layout #wrapper { background-color: #2f4050; max-width: 1200px; margin: 0 auto } .boxed-layout #wrapper.top-navigation, .top-navigation.boxed-layout #wrapper { max-width: 1300px !important } .block { display: block } .clear { display: block; overflow: hidden } a { cursor: pointer } a:focus, a:hover { text-decoration: none } .border-bottom { border-bottom: 1px solid #e7eaec !important } .font-bold { font-weight: 600 } .font-noraml { font-weight: 400 } .text-uppercase { text-transform: uppercase } .b-r { border-right: 1px solid #e7eaec } .hr-line-dashed { border-top: 1px dashed #e7eaec; color: #fff; background-color: #fff; height: 1px; margin: 20px 0 } .hr-line-solid { border-bottom: 1px solid #e7eaec; background-color: rgba(0, 0, 0, 0); border-style: solid !important; margin-top: 15px; margin-bottom: 15px } video { width: 100% !important; height: auto !important } .gallery > .row > div { margin-bottom: 15px } .fancybox img { margin-bottom: 5px; width: 24% } .note-editor { height: auto !important; min-height: 100px; border: solid 1px #e5e6e7 } .modal-content { background-clip: padding-box; background-color: #FFF; border: 1px solid rgba(0, 0, 0, 0); border-radius: 4px; box-shadow: 0 1px 3px rgba(0, 0, 0, .3); outline: 0 none } .modal-dialog { z-index: 1200 } .modal-body { padding: 20px 30px 30px } .inmodal .modal-body { background: #f8fafb } .inmodal .modal-header { padding: 30px 15px; text-align: center } .animated.modal.fade .modal-dialog { -webkit-transform: none; -ms-transform: none; transform: none } .inmodal .modal-title { font-size: 26px } .inmodal .modal-icon { font-size: 84px; color: #e2e3e3 } .modal-footer { margin-top: 0 } #wrapper { width: 100%; overflow-x: hidden; background-color: #2f4050 } .wrapper { padding: 0 20px } .wrapper-content { padding: 20px } #page-wrapper { padding: 0 15px; position: inherit; margin: 0 0 0 220px } .title-action { text-align: right; padding-top: 30px } .ibox-content h1, .ibox-content h2, .ibox-content h3, .ibox-content h4, .ibox-content h5, .ibox-title h1, .ibox-title h2, .ibox-title h3, .ibox-title h4, .ibox-title h5 { margin-top: 5px } ol.unstyled, ul.unstyled { list-style: none outside none; margin-left: 0 } .big-icon { font-size: 160px; color: #e5e6e7 } .footer { background: none repeat scroll 0 0 #fff; border-top: 1px solid #e7eaec; overflow: hidden; padding: 10px 20px; margin: 0 -15px; height: 36px } .footer.fixed_full { position: fixed; bottom: 0; left: 0; right: 0; z-index: 1000; padding: 10px 20px; background: #fff; border-top: 1px solid #e7eaec } .footer.fixed { position: fixed; bottom: 0; left: 0; right: 0; z-index: 1000; padding: 10px 20px; background: #fff; border-top: 1px solid #e7eaec; margin-left: 220px } body.body-small.mini-navbar .footer.fixed, body.mini-navbar .footer.fixed { margin: 0 0 0 70px } body.canvas-menu .footer.fixed, body.mini-navbar.canvas-menu .footer.fixed { margin: 0 !important } body.fixed-sidebar.body-small.mini-navbar .footer.fixed { margin: 0 0 0 220px } body.body-small .footer.fixed { margin-left: 0 } .page-heading { border-top: 0; padding: 0 20px 20px } .panel-heading h1, .panel-heading h2 { margin-bottom: 5px } .content-tabs { position: relative; height: 42px; background: #fafafa; line-height: 40px } .content-tabs .roll-nav, .page-tabs-list { position: absolute; width: 40px; height: 40px; text-align: center; color: #999; z-index: 2; top: 0 } .content-tabs .roll-left { left: 0; border-right: solid 1px #eee } .content-tabs .roll-right { right: 0; border-left: solid 1px #eee } .content-tabs button { background: #fff; border: 0; height: 40px; width: 40px; outline: 0 } .content-tabs button:hover { background: #fafafa } nav.page-tabs { margin-left: 40px; width: 100000px; height: 40px; overflow: hidden } nav.page-tabs .page-tabs-content { float: left } .page-tabs a { display: block; float: left; border-right: solid 1px #eee; padding: 0 15px } .page-tabs a i:hover { color: #c00 } .content-tabs .roll-nav:hover, .page-tabs a:hover { color: #777; background: #f2f2f2; cursor: pointer } .roll-right.J_tabRight { right: 140px } .roll-right.btn-group { right: 60px; width: 80px; padding: 0 } .roll-right.btn-group button { width: 80px } .roll-right.J_tabExit { background: #fff; height: 40px; width: 60px; outline: 0 } .dropdown-menu-right { left: auto } #content-main { height: calc(100% - 140px); overflow: hidden } .fixed-nav #content-main { height: calc(100% - 80px); overflow: hidden } .table-bordered { border: 1px solid #EBEBEB; white-space: pre-wrap; } .table-bordered > thead > tr > td, .table-bordered > thead > tr > th { background-color: #F5F5F6 } .table-bordered > tbody > tr > td, .table-bordered > tbody > tr > th, .table-bordered > tfoot > tr > td, .table-bordered > tfoot > tr > th, .table-bordered > thead > tr > td, .table-bordered > thead > tr > th { border: 1px solid #e7e7e7 } .table > thead > tr > th { border-bottom: 1px solid #DDD } .table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th { border-top: 1px solid #e7eaec; line-height: 1.42857; padding: 8px; vertical-align: middle } .panel.blank-panel { background: 0 0; margin: 0 } .blank-panel .panel-heading { padding-bottom: 0 } .nav-tabs > li.active > a, .nav-tabs > li.active > a:focus, .nav-tabs > li.active > a:hover { -moz-border-bottom-colors: none; -moz-border-left-colors: none; -moz-border-right-colors: none; -moz-border-top-colors: none; background: 0 0; border-color: #ddd #ddd rgba(0, 0, 0, 0); border-bottom: #f3f3f4; -webkit-border-image: none; -o-border-image: none; border-image: none; border-style: solid; border-width: 1px; color: #555; cursor: default } .nav.nav-tabs li { background: 0 0; border: none } .nav-tabs > li > a { color: #A7B1C2; font-weight: 600; padding: 10px 20px 10px 25px } .nav-tabs > li > a:focus, .nav-tabs > li > a:hover { background-color: #e6e6e6; color: #676a6c } .ui-tab .tab-content { padding: 20px 0 } .no-padding { padding: 0 !important } .no-borders { border: none !important } .no-margins { margin: 0 !important } .no-top-border { border-top: 0 !important } .ibox-content.text-box { padding-bottom: 0; padding-top: 15px } .border-left-right { border-left: 1px solid #e7eaec; border-right: 1px solid #e7eaec; border-top: none; border-bottom: none } .border-left { border-left: 1px solid #e7eaec; border-right: none; border-top: none; border-bottom: none } .border-right { border-left: none; border-right: 1px solid #e7eaec; border-top: none; border-bottom: none } .full-width { width: 100% !important } .link-block { font-size: 12px; padding: 10px } .nav.navbar-top-links .link-block a { font-size: 12px } .link-block a { font-size: 10px; color: inherit } body.mini-navbar .branding { display: none } img.circle-border { border: 6px solid #FFF; border-radius: 50% } .branding { float: left; color: #FFF; font-size: 18px; font-weight: 600; padding: 17px 20px; text-align: center; background-color: #1ab394 } .login-panel { margin-top: 25% } .page-header { padding: 20px 0 9px; margin: 0 0 20px; border-bottom: 1px solid #eee } .fontawesome-icon-list { margin-top: 22px } .fontawesome-icon-list .fa-hover a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; color: #222; line-height: 32px; height: 32px; padding-left: 10px; border-radius: 4px } .fontawesome-icon-list .fa-hover a .fa { width: 32px; font-size: 14px; display: inline-block; text-align: right; margin-right: 10px } .fontawesome-icon-list .fa-hover a:hover { background-color: #1d9d74; color: #fff; text-decoration: none } .fontawesome-icon-list .fa-hover a:hover .fa { font-size: 30px; vertical-align: -6px } .fontawesome-icon-list .fa-hover a:hover .text-muted { color: #bbe2d5 } .feature-list .col-md-4 { margin-bottom: 22px } .feature-list h4 .fa:before { vertical-align: -10%; font-size: 28px; display: inline-block; width: 1.07142857em; text-align: center; margin-right: 5px } .ui-draggable .ibox-title { cursor: move } .breadcrumb { background-color: #fff; padding: 0; margin-bottom: 0 } .breadcrumb > .active, .breadcrumb > li a { color: inherit } code { background-color: #F9F2F4; border-radius: 4px; color: #ca4440; font-size: 90%; padding: 2px 4px; white-space: nowrap } .ibox { clear: both; margin-bottom: 25px; margin-top: 0; padding: 0 } .ibox.collapsed .ibox-content { display: none } .ibox.collapsed .fa.fa-chevron-up:before { content: "\f078" } .ibox.collapsed .fa.fa-chevron-down:before { content: "\f077" } .ibox:after, .ibox:before { display: table } .ibox-title { -moz-border-bottom-colors: none; -moz-border-left-colors: none; -moz-border-right-colors: none; -moz-border-top-colors: none; background-color: #fff; border-color: #e7eaec; -webkit-border-image: none; -o-border-image: none; border-image: none; border-style: solid solid none; border-width: 4px 0 0; color: inherit; margin-bottom: 0; padding: 14px 15px 7px; min-height: 48px } .ibox-content { background-color: #fff; color: inherit; padding: 15px 20px 20px; border-color: #e7eaec; -webkit-border-image: none; -o-border-image: none; border-image: none; border-style: solid solid none; border-width: 1px 0 } table.table-mail tr td { padding: 12px } .table-mail .check-mail { padding-left: 20px } .table-mail .mail-date { padding-right: 20px } .check-mail, .star-mail { width: 40px } .unread td, .unread td a { font-weight: 600; color: inherit } .read td, .read td a { font-weight: 400; color: inherit } .unread td { background-color: #f9f8f8 } .ibox-content { clear: both } .ibox-heading { background-color: #f3f6fb; border-bottom: none } .ibox-heading h3 { font-weight: 200; font-size: 24px } .ibox-title h5 { display: inline-block; font-size: 14px; margin: 0 0 7px; padding: 0; text-overflow: ellipsis; float: left } .ibox-title .label { float: left; margin-left: 4px } .ibox-tools { display: inline-block; /*display: none;*/ float: right; margin-top: 0; position: relative; padding: 0 } .ibox-tools a { cursor: pointer; margin-left: 5px; color: #c4c4c4 } .ibox-tools a.btn-primary { color: #fff } .ibox-tools .dropdown-menu > li > a { padding: 4px 10px; font-size: 12px } .ibox .open > .dropdown-menu { left: auto; right: 0 } .gray-bg { background-color: #f3f3f4 } .white-bg { background-color: #fff } .navy-bg { background-color: #1ab394; color: #fff } .blue-bg { background-color: #1c84c6; color: #fff } .lazur-bg { background-color: #23c6c8; color: #fff } .yellow-bg { background-color: #f8ac59; color: #fff } .red-bg { background-color: #ed5565; color: #fff } .black-bg { background-color: #262626 } .panel-primary { border-color: #1ab394 } .panel-primary > .panel-heading { background-color: #1ab394; border-color: #1ab394 } .panel-success { border-color: #1c84c6 } .panel-success > .panel-heading { background-color: #1c84c6; border-color: #1c84c6; color: #fff } .panel-info { border-color: #23c6c8 } .panel-info > .panel-heading { background-color: #23c6c8; border-color: #23c6c8; color: #fff } .panel-warning { border-color: #f8ac59 } .panel-warning > .panel-heading { background-color: #f8ac59; border-color: #f8ac59; color: #fff } .panel-danger { border-color: #ed5565 } .panel-danger > .panel-heading { background-color: #ed5565; border-color: #ed5565; color: #fff } .progress-bar { background-color: #1ab394 } .progress-small, .progress-small .progress-bar { height: 10px } .progress-mini, .progress-small { margin-top: 5px } .progress-mini, .progress-mini .progress-bar { height: 5px; margin-bottom: 0 } .progress-bar-navy-light { background-color: #3dc7ab } .progress-bar-success { background-color: #1c84c6 } .progress-bar-info { background-color: #23c6c8 } .progress-bar-warning { background-color: #f8ac59 } .progress-bar-danger { background-color: #ed5565 } .panel-title { font-size: inherit } .jumbotron { border-radius: 6px; padding: 40px } .jumbotron h1 { margin-top: 0 } .text-navy { color: #70AD47 } .text-primary { color: inherit } .text-success { color: #70AD47 } .text-info { color: #555 } .text-warning { color: #777777 } .text-danger { color: #F25929 } .text-muted { color: #888 } .simple_tag { background-color: #f3f3f4; border: 1px solid #e7eaec; border-radius: 2px; color: inherit; font-size: 10px; margin-right: 5px; margin-top: 5px; padding: 5px 12px; display: inline-block } .img-shadow { box-shadow: 0 0 3px 0 #919191 } .ComposeEmail .navbar.navbar-static-top, .Dashboard_2 .navbar.navbar-static-top, .Dashboard_3 .navbar.navbar-static-top, .Dashboard_4_1 .navbar.navbar-static-top, .EmailView .navbar.navbar-static-top, .Inbox .navbar.navbar-static-top, .dashboards\.dashboard_2 nav.navbar, .dashboards\.dashboard_3 nav.navbar, .dashboards\.dashboard_4_1 nav.navbar, .mailbox\.email_compose nav.navbar, .mailbox\.email_view nav.navbar, .mailbox\.inbox nav.navbar { background: #fff } a.close-canvas-menu { position: absolute; top: 10px; right: 15px; z-index: 1011; color: #a7b1c2 } a.close-canvas-menu:hover { color: #fff } .full-height { height: 100% } .fh-breadcrumb { height: calc(100% - 196px); margin: 0 -15px; position: relative } .fh-no-breadcrumb { height: calc(100% - 99px); margin: 0 -15px; position: relative } .fh-column { background: #fff; height: 100%; width: 240px; float: left } .modal-backdrop { z-index: 2040 !important } .modal { z-index: 2050 !important } .spiner-example { height: 200px; padding-top: 70px } .p-xxs { padding: 5px } .p-xs { padding: 10px } .p-sm { padding: 15px } .p-m { padding: 20px } .p-md { padding: 25px } .p-lg { padding: 30px } .p-xl { padding: 40px } .m-xxs { margin: 2px 4px } .m-xs { margin: 5px } .m-sm { margin: 10px } .m { margin: 15px } .m-md { margin: 20px } .m-lg { margin: 30px } .m-xl { margin: 50px } .m-n { margin: 0 !important } .m-l-none { margin-left: 0 } .m-l-xs { margin-left: 5px } .m-l-sm { margin-left: 10px } .m-l { margin-left: 15px } .m-l-md { margin-left: 20px } .m-l-lg { margin-left: 30px } .m-l-xl { margin-left: 40px } .m-l-n-xxs { margin-left: -1px } .m-l-n-xs { margin-left: -5px } .m-l-n-sm { margin-left: -10px } .m-l-n { margin-left: -15px } .m-l-n-md { margin-left: -20px } .m-l-n-lg { margin-left: -30px } .m-l-n-xl { margin-left: -40px } .m-t-none { margin-top: 0 } .m-t-xxs { margin-top: 1px } .m-t-xs { margin-top: 5px } .m-t-sm { margin-top: 10px } .m-t { margin-top: 15px } .m-t-md { margin-top: 20px } .m-t-lg { margin-top: 30px } .m-t-xl { margin-top: 40px } .m-t-n-xxs { margin-top: -1px } .m-t-n-xs { margin-top: -5px } .m-t-n-sm { margin-top: -10px } .m-t-n { margin-top: -15px } .m-t-n-md { margin-top: -20px } .m-t-n-lg { margin-top: -30px } .m-t-n-xl { margin-top: -40px } .m-r-none { margin-right: 0 } .m-r-xxs { margin-right: 1px } .m-r-xs { margin-right: 5px } .m-r-sm { margin-right: 10px } .m-r { margin-right: 15px } .m-r-md { margin-right: 20px } .m-r-lg { margin-right: 30px } .m-r-xl { margin-right: 40px } .m-r-n-xxs { margin-right: -1px } .m-r-n-xs { margin-right: -5px } .m-r-n-sm { margin-right: -10px } .m-r-n { margin-right: -15px } .m-r-n-md { margin-right: -20px } .m-r-n-lg { margin-right: -30px } .m-r-n-xl { margin-right: -40px } .m-b-none { margin-bottom: 0 } .m-b-xxs { margin-bottom: 1px } .m-b-xs { margin-bottom: 5px } .m-b-sm { margin-bottom: 10px } .m-b { margin-bottom: 15px } .m-b-md { margin-bottom: 20px } .m-b-lg { margin-bottom: 30px } .m-b-xl { margin-bottom: 40px } .m-b-n-xxs { margin-bottom: -1px } .m-b-n-xs { margin-bottom: -5px } .m-b-n-sm { margin-bottom: -10px } .m-b-n { margin-bottom: -15px } .m-b-n-md { margin-bottom: -20px } .m-b-n-lg { margin-bottom: -30px } .m-b-n-xl { margin-bottom: -40px } .space-15 { margin: 15px 0 } .space-20 { margin: 20px 0 } .space-25 { margin: 25px 0 } .space-30 { margin: 30px 0 } body.modal-open { padding-right: inherit !important } .search-form { margin-top: 10px } .search-result h3 { margin-bottom: 0; color: #1E0FBE } .search-result .search-link { color: #006621 } .search-result p { font-size: 12px; margin-top: 5px } .contact-box { background-color: #fff; border: 1px solid #e7eaec; padding: 20px; margin-bottom: 20px } .contact-box a { color: inherit } .invoice-table tbody > tr > td:last-child, .invoice-table tbody > tr > td:nth-child(2), .invoice-table tbody > tr > td:nth-child(3), .invoice-table tbody > tr > td:nth-child(4), .invoice-table thead > tr > th:last-child, .invoice-table thead > tr > th:nth-child(2), .invoice-table thead > tr > th:nth-child(3), .invoice-table thead > tr > th:nth-child(4), .invoice-total > tbody > tr > td:first-child { text-align: right } .invoice-total > tbody > tr > td { border: 0 none } .invoice-total > tbody > tr > td:last-child { border-bottom: 1px solid #DDD; text-align: right; width: 15% } .middle-box { max-width: 400px; z-index: 100; margin: 0 auto; padding-top: 40px } .lockscreen.middle-box { width: 200px; padding-top: 110px } .loginscreen.middle-box { width: 300px } .loginColumns { max-width: 800px; margin: 0 auto; padding: 100px 20px 20px } .passwordBox { max-width: 460px; margin: 0 auto; padding: 100px 20px 20px } .logo-name { color: #e6e6e6; font-size: 180px; font-weight: 800; letter-spacing: -10px; margin-bottom: 0 } .middle-box h1 { font-size: 170px } .wrapper .middle-box { margin-top: 140px } .lock-word { z-index: 10; position: absolute; top: 110px; left: 50%; margin-left: -470px } .lock-word span { font-size: 100px; font-weight: 600; color: #e9e9e9; display: inline-block } .lock-word .first-word { margin-right: 160px } .dashboard-header { border-top: 0; padding: 20px } .dashboard-header h2 { margin-top: 10px; font-size: 26px } .fist-item { border-top: none !important } .statistic-box { margin-top: 40px } .dashboard-header .list-group-item span.label { margin-right: 10px } .list-group.clear-list .list-group-item { border-top: 1px solid #e7eaec; border-bottom: 0; border-right: 0; border-left: 0; padding: 10px 0 } ul.clear-list:first-child { border-top: none !important } .timeline-item .date i { position: absolute; top: 0; right: 0; padding: 5px; width: 30px; text-align: center; border-top: 1px solid #e7eaec; border-bottom: 1px solid #e7eaec; border-left: 1px solid #e7eaec; background: #f8f8f8 } .timeline-item .date { text-align: right; width: 110px; position: relative; padding-top: 30px } .timeline-item .content { border-left: 1px solid #e7eaec; border-top: 1px solid #e7eaec; padding-top: 10px; min-height: 100px } .timeline-item .content:hover { background: #f6f6f6 } ul.notes li, ul.tag-list li { list-style: none } ul.notes li h4 { margin-top: 20px; font-size: 16px } ul.notes li div { position: relative } ul.notes li div small { position: absolute; top: 5px; right: 5px; font-size: 10px } ul.notes li div a { position: absolute; right: 10px; bottom: 10px; color: inherit } ul.notes li { margin: 10px 40px 50px 0; float: left } ul.notes li div p { font-size: 12px } ul.notes li div { -webkit-transform: rotate(-6deg); -o-transform: rotate(-6deg); -moz-transform: rotate(-6deg) } ul.notes li:nth-child(even) div { -o-transform: rotate(4deg); -webkit-transform: rotate(4deg); -moz-transform: rotate(4deg); position: relative; top: 5px } ul.notes li:nth-child(3n) div { -o-transform: rotate(-3deg); -webkit-transform: rotate(-3deg); -moz-transform: rotate(-3deg); position: relative; top: -5px } ul.notes li:nth-child(5n) div { -o-transform: rotate(5deg); -webkit-transform: rotate(5deg); -moz-transform: rotate(5deg); position: relative; top: -10px } ul.notes li div:focus, ul.notes li div:hover { -webkit-transform: scale(1.1); -moz-transform: scale(1.1); -o-transform: scale(1.1); position: relative; z-index: 5 } ul.notes li div { text-decoration: none; color: #000; background: #ffc; display: block; height: 210px; width: 210px; padding: 1em; box-shadow: 5px 5px 7px rgba(33, 33, 33, .7); -webkit-transition: -webkit-transform .15s linear } .file-box { float: left; width: 220px } .file-manager h5 { text-transform: uppercase } .file-manager { list-style: none outside none; margin: 0; padding: 0 } .folder-list li a { color: #666; display: block; padding: 5px 0 } .folder-list li { border-bottom: 1px solid #e7eaec; display: block } .folder-list li i { margin-right: 8px; color: #3d4d5d } .category-list li a { color: #666; display: block; padding: 5px 0 } .category-list li { display: block } .category-list li i { margin-right: 8px; color: #3d4d5d } .category-list li a .text-navy { color: #1ab394 } .category-list li a .text-primary { color: #1c84c6 } .category-list li a .text-info { color: #23c6c8 } .category-list li a .text-danger { color: #EF5352 } .category-list li a .text-warning { color: #F8AC59 } .file-manager h5.tag-title { margin-top: 20px } .tag-list li { float: left } .tag-list li a { font-size: 10px; background-color: #f3f3f4; padding: 5px 12px; color: inherit; border-radius: 2px; border: 1px solid #e7eaec; margin-right: 5px; margin-top: 5px; display: block } .file { border: 1px solid #e7eaec; padding: 0; background-color: #fff; position: relative; margin-bottom: 20px; margin-right: 20px } .file-manager .hr-line-dashed { margin: 15px 0 } .file .icon, .file .image { height: 100px; overflow: hidden } .file .icon { padding: 15px 10px; text-align: center } .file-control { color: inherit; font-size: 11px; margin-right: 10px } .file-control.active { text-decoration: underline } .file .icon i { font-size: 70px; color: #dadada } .file .file-name { padding: 10px; background-color: #f8f8f8; border-top: 1px solid #e7eaec } .file-name small { color: #676a6c } .corner { position: absolute; display: inline-block; width: 0; height: 0; line-height: 0; border: .6em solid transparent; border-right: .6em solid #f1f1f1; border-bottom: .6em solid #f1f1f1; right: 0; bottom: 0 } a.compose-mail { padding: 8px 10px } .mail-search { max-width: 300px } .profile-content { border-top: none !important } .feed-activity-list .feed-element { border-bottom: 1px solid #e7eaec } .feed-element:first-child { margin-top: 0 } .feed-element { padding-bottom: 15px } .feed-element, .feed-element .media { margin-top: 15px } .feed-element, .media-body { overflow: hidden } .feed-element > .pull-left { margin-right: 10px } .dropdown-messages-box img.img-circle, .feed-element img.img-circle { width: 38px; height: 38px } .feed-element .well { border: 1px solid #e7eaec; box-shadow: none; margin-top: 10px; margin-bottom: 5px; padding: 10px 20px; font-size: 11px; line-height: 16px } .feed-element .actions { margin-top: 10px } .feed-element .photos { margin: 10px 0 } .feed-photo { max-height: 180px; border-radius: 4px; overflow: hidden; margin-right: 10px; margin-bottom: 10px } .mail-box { background-color: #fff; border: 1px solid #e7eaec; border-top: 0; padding: 0; margin-bottom: 20px } .mail-box-header { background-color: #fff; border: 1px solid #e7eaec; border-bottom: 0; padding: 30px 20px 20px } .mail-box-header h2 { margin-top: 0 } .mailbox-content .tag-list li a { background: #fff } .mail-body { border-top: 1px solid #e7eaec; padding: 20px } .mail-text { border-top: 1px solid #e7eaec } .mail-text .note-toolbar { padding: 10px 15px } .mail-body .form-group { margin-bottom: 5px } .mail-text .note-editor .note-toolbar { background-color: #F9F8F8 } .mail-attachment { border-top: 1px solid #e7eaec; padding: 20px; font-size: 12px } .mailbox-content { background: 0 0; border: none; padding: 10px } .mail-ontact { width: 23% } .project-actions, .project-people { text-align: right; vertical-align: middle } dd.project-people { text-align: left; margin-top: 5px } .project-people img { width: 32px; height: 32px } .project-title a { font-size: 14px; color: #676a6c; font-weight: 600 } .project-list table tr td { border-top: none; border-bottom: 1px solid #e7eaec; padding: 15px 10px; vertical-align: middle } .project-manager .tag-list li a { font-size: 10px; background-color: #fff; padding: 5px 12px; color: inherit; border-radius: 2px; border: 1px solid #e7eaec; margin-right: 5px; margin-top: 5px; display: block } .project-files li a { font-size: 11px; color: #676a6c; margin-left: 10px; line-height: 22px } .faq-item { padding: 20px; margin-bottom: 2px; background: #fff } .faq-question { font-size: 18px; font-weight: 600; color: #1ab394; display: block } .faq-question:hover { color: #179d82 } .faq-answer { margin-top: 10px; background: #f3f3f4; border: 1px solid #e7eaec; border-radius: 3px; padding: 15px } .faq-item .tag-item { background: #f3f3f4; padding: 2px 6px; font-size: 10px; text-transform: uppercase } .message-input { height: 90px !important } .chat-avatar { white: 36px; height: 36px; float: left; margin-right: 10px } .chat-user-name { padding: 10px } .chat-user { padding: 8px 10px; border-bottom: 1px solid #e7eaec } .chat-user a { color: inherit } .chat-view { z-index: 20012 } .chat-statistic, .chat-users { margin-left: -30px } @media (max-width: 992px) { .chat-statistic, .chat-users { margin-left: 0 } } .chat-view .ibox-content { padding: 0 } .chat-message { padding: 10px 20px } .message-avatar { height: 48px; width: 48px; border: 1px solid #e7eaec; border-radius: 4px; margin-top: 1px } .chat-discussion .chat-message:nth-child(2n+1) .message-avatar { float: left; margin-right: 10px } .chat-discussion .chat-message:nth-child(2n) .message-avatar { float: right; margin-left: 10px } .message { background-color: #fff; border: 1px solid #e7eaec; text-align: left; display: block; padding: 10px 20px; position: relative; border-radius: 4px } .chat-discussion .chat-message:nth-child(2n+1) .message-date { float: right } .chat-discussion .chat-message:nth-child(2n) .message-date { float: left } .chat-discussion .chat-message:nth-child(2n+1) .message { text-align: left; margin-left: 55px } .chat-discussion .chat-message:nth-child(2n) .message { text-align: right; margin-right: 55px } .message-date { font-size: 10px; color: #888 } .message-content { display: block } .chat-discussion { background: #eee; padding: 15px; height: 400px; overflow-y: auto } .chat-users { overflow-y: auto; height: 400px } .chat-message-form .form-group { margin-bottom: 0 } .jstree-open > .jstree-anchor > .fa-folder:before { content: "\f07c" } .jstree-default .jstree-icon.none { width: 0 } .clients-list { margin-top: 20px } .clients-list .tab-pane { position: relative; height: 600px } .client-detail { position: relative; height: 620px } .clients-list table tr td { height: 46px; vertical-align: middle; border: none } .client-link { font-weight: 600; color: inherit } .client-link:hover { color: inherit } .client-avatar { width: 42px } .client-avatar img { width: 28px; height: 28px; border-radius: 50% } .contact-type { width: 20px; color: #c1c3c4 } .client-status { text-align: left } .client-detail .vertical-timeline-content p { margin: 0 } .client-detail .vertical-timeline-icon.gray-bg { color: #a7aaab } .clients-list .nav-tabs > li.active > a, .clients-list .nav-tabs > li.active > a:focus, .clients-list .nav-tabs > li.active > a:hover { border-bottom: 1px solid #fff } .blog h2 { font-weight: 700 } .blog .btn, .blog h5 { margin: 0 0 5px } .article h1 { font-size: 48px; font-weight: 700; color: #2F4050 } .article p { font-size: 15px; line-height: 26px } .article-title { text-align: center; margin: 60px 0 40px } .article .ibox-content { padding: 40px } .issue-tracker .btn-link { color: #1ab394 } table.issue-tracker tbody tr td { vertical-align: middle; height: 50px } .issue-info { width: 50% } .issue-info a { font-weight: 600; color: #676a6c } .issue-info small { display: block } .team-members { margin: 10px 0 } .team-members img.img-circle { width: 42px; height: 42px; margin-bottom: 5px } .sortable-list { padding: 10px 0 } .agile-list { list-style: none; margin: 0 } .agile-list li { background: #FAFAFB; border: 1px solid #e7eaec; margin: 0 0 10px; padding: 10px; border-radius: 2px } .agile-list li:hover { cursor: pointer; background: #fff } .agile-list li.warning-element { border-left: 3px solid #f8ac59 } .agile-list li.danger-element { border-left: 3px solid #ed5565 } .agile-list li.info-element { border-left: 3px solid #1c84c6 } .agile-list li.success-element { border-left: 3px solid #1ab394 } .agile-detail { margin-top: 5px; font-size: 12px } ins { background-color: #c6ffc6; text-decoration: none } del { background-color: #ffc6c6 } #small-chat { position: fixed; bottom: 50px; right: 26px; z-index: 100 } #small-chat .badge { position: absolute; top: -3px; right: -4px } .open-small-chat { height: 38px; width: 38px; display: block; background: #1ab394; padding: 9px 8px; text-align: center; color: #fff; border-radius: 50% } .open-small-chat:hover { color: #fff; background: #1ab394 } .small-chat-box { display: none; position: fixed; bottom: 50px; right: 80px; background: #fff; border: 1px solid #e7eaec; width: 230px; height: 320px; border-radius: 4px } .small-chat-box.ng-small-chat { display: block } .body-small .small-chat-box { bottom: 70px; right: 20px } .small-chat-box.active { display: block } .small-chat-box .heading { background: #2f4050; padding: 8px 15px; font-weight: 700; color: #fff } .small-chat-box .chat-date { opacity: .6; font-size: 10px; font-weight: 400 } .small-chat-box .content { padding: 15px } .small-chat-box .content .author-name { font-weight: 700; margin-bottom: 3px; font-size: 11px } .small-chat-box .content > div { padding-bottom: 20px } .small-chat-box .content .chat-message { padding: 5px 10px; border-radius: 6px; font-size: 11px; line-height: 14px; max-width: 80%; background: #f3f3f4; margin-bottom: 10px } .small-chat-box .content .chat-message.active { background: #1ab394; color: #fff } .small-chat-box .content .left { text-align: left; clear: both } .small-chat-box .content .left .chat-message { float: left } .small-chat-box .content .right { text-align: right; clear: both } .small-chat-box .content .right .chat-message { float: right } .small-chat-box .form-chat { padding: 10px } .sk-spinner-rotating-plane.sk-spinner { width: 30px; height: 30px; background-color: #1ab394; margin: 0 auto; -webkit-animation: sk-rotatePlane 1.2s infinite ease-in-out; animation: sk-rotatePlane 1.2s infinite ease-in-out } @-webkit-keyframes sk-rotatePlane { 0% { -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg); transform: perspective(120px) rotateX(0deg) rotateY(0deg) } 50% { -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg) } 100% { -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg) } } @keyframes sk-rotatePlane { 0% { -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg); transform: perspective(120px) rotateX(0deg) rotateY(0deg) } 50% { -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg) } 100% { -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg) } } .sk-spinner-double-bounce.sk-spinner { width: 40px; height: 40px; position: relative; margin: 0 auto } .sk-spinner-double-bounce .sk-double-bounce1, .sk-spinner-double-bounce .sk-double-bounce2 { width: 100%; height: 100%; border-radius: 50%; background-color: #1ab394; opacity: .6; position: absolute; top: 0; left: 0; -webkit-animation: sk-doubleBounce 2s infinite ease-in-out; animation: sk-doubleBounce 2s infinite ease-in-out } .sk-spinner-double-bounce .sk-double-bounce2 { -webkit-animation-delay: -1s; animation-delay: -1s } @-webkit-keyframes sk-doubleBounce { 0%, 100% { -webkit-transform: scale(0); transform: scale(0) } 50% { -webkit-transform: scale(1); transform: scale(1) } } @keyframes sk-doubleBounce { 0%, 100% { -webkit-transform: scale(0); transform: scale(0) } 50% { -webkit-transform: scale(1); transform: scale(1) } } .sk-spinner-wave.sk-spinner { margin: 0 auto; width: 50px; height: 30px; text-align: center; font-size: 10px } .sk-spinner-wave div { background-color: #1ab394; height: 100%; width: 6px; display: inline-block; -webkit-animation: sk-waveStretchDelay 1.2s infinite ease-in-out; animation: sk-waveStretchDelay 1.2s infinite ease-in-out } .sk-spinner-wave .sk-rect2 { -webkit-animation-delay: -1.1s; animation-delay: -1.1s } .sk-spinner-wave .sk-rect3 { -webkit-animation-delay: -1s; animation-delay: -1s } .sk-spinner-wave .sk-rect4 { -webkit-animation-delay: -.9s; animation-delay: -.9s } .sk-spinner-wave .sk-rect5 { -webkit-animation-delay: -.8s; animation-delay: -.8s } @-webkit-keyframes sk-waveStretchDelay { 0%, 100%, 40% { -webkit-transform: scaleY(0.4); transform: scaleY(0.4) } 20% { -webkit-transform: scaleY(1); transform: scaleY(1) } } @keyframes sk-waveStretchDelay { 0%, 100%, 40% { -webkit-transform: scaleY(0.4); transform: scaleY(0.4) } 20% { -webkit-transform: scaleY(1); transform: scaleY(1) } } .sk-spinner-wandering-cubes.sk-spinner { margin: 0 auto; width: 32px; height: 32px; position: relative } .sk-spinner-wandering-cubes .sk-cube1, .sk-spinner-wandering-cubes .sk-cube2 { background-color: #1ab394; width: 10px; height: 10px; position: absolute; top: 0; left: 0; -webkit-animation: sk-wanderingCubeMove 1.8s infinite ease-in-out; animation: sk-wanderingCubeMove 1.8s infinite ease-in-out } .sk-spinner-wandering-cubes .sk-cube2 { -webkit-animation-delay: -.9s; animation-delay: -.9s } @-webkit-keyframes sk-wanderingCubeMove { 25% { -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5); transform: translateX(42px) rotate(-90deg) scale(0.5) } 50% { -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg); transform: translateX(42px) translateY(42px) rotate(-179deg) } 50.1% { -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg); transform: translateX(42px) translateY(42px) rotate(-180deg) } 75% { -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5); transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5) } 100% { -webkit-transform: rotate(-360deg); transform: rotate(-360deg) } } @keyframes sk-wanderingCubeMove { 25% { -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5); transform: translateX(42px) rotate(-90deg) scale(0.5) } 50% { -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg); transform: translateX(42px) translateY(42px) rotate(-179deg) } 50.1% { -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg); transform: translateX(42px) translateY(42px) rotate(-180deg) } 75% { -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5); transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5) } 100% { -webkit-transform: rotate(-360deg); transform: rotate(-360deg) } } .sk-spinner-pulse.sk-spinner { width: 40px; height: 40px; margin: 0 auto; background-color: #1ab394; border-radius: 100%; -webkit-animation: sk-pulseScaleOut 1s infinite ease-in-out; animation: sk-pulseScaleOut 1s infinite ease-in-out } @-webkit-keyframes sk-pulseScaleOut { 0% { -webkit-transform: scale(0); transform: scale(0) } 100% { -webkit-transform: scale(1); transform: scale(1); opacity: 0 } } @keyframes sk-pulseScaleOut { 0% { -webkit-transform: scale(0); transform: scale(0) } 100% { -webkit-transform: scale(1); transform: scale(1); opacity: 0 } } .sk-spinner-chasing-dots.sk-spinner { margin: 0 auto; width: 40px; height: 40px; position: relative; text-align: center; -webkit-animation: sk-chasingDotsRotate 2s infinite linear; animation: sk-chasingDotsRotate 2s infinite linear } .sk-spinner-chasing-dots .sk-dot1, .sk-spinner-chasing-dots .sk-dot2 { width: 60%; height: 60%; display: inline-block; position: absolute; top: 0; background-color: #1ab394; border-radius: 100%; -webkit-animation: sk-chasingDotsBounce 2s infinite ease-in-out; animation: sk-chasingDotsBounce 2s infinite ease-in-out } .sk-spinner-chasing-dots .sk-dot2 { top: auto; bottom: 0; -webkit-animation-delay: -1s; animation-delay: -1s } @-webkit-keyframes sk-chasingDotsRotate { 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg) } } @keyframes sk-chasingDotsRotate { 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg) } } @-webkit-keyframes sk-chasingDotsBounce { 0%, 100% { -webkit-transform: scale(0); transform: scale(0) } 50% { -webkit-transform: scale(1); transform: scale(1) } } @keyframes sk-chasingDotsBounce { 0%, 100% { -webkit-transform: scale(0); transform: scale(0) } 50% { -webkit-transform: scale(1); transform: scale(1) } } .sk-spinner-three-bounce.sk-spinner { margin: 0 auto; width: 70px; text-align: center } .sk-spinner-three-bounce div { width: 18px; height: 18px; background-color: #1ab394; border-radius: 100%; display: inline-block; -webkit-animation: sk-threeBounceDelay 1.4s infinite ease-in-out; animation: sk-threeBounceDelay 1.4s infinite ease-in-out; -webkit-animation-fill-mode: both; animation-fill-mode: both } .sk-spinner-three-bounce .sk-bounce1 { -webkit-animation-delay: -.32s; animation-delay: -.32s } .sk-spinner-three-bounce .sk-bounce2 { -webkit-animation-delay: -.16s; animation-delay: -.16s } @-webkit-keyframes sk-threeBounceDelay { 0%, 100%, 80% { -webkit-transform: scale(0); transform: scale(0) } 40% { -webkit-transform: scale(1); transform: scale(1) } } @keyframes sk-threeBounceDelay { 0%, 100%, 80% { -webkit-transform: scale(0); transform: scale(0) } 40% { -webkit-transform: scale(1); transform: scale(1) } } .sk-spinner-circle.sk-spinner { margin: 0 auto; width: 22px; height: 22px; position: relative } .sk-spinner-circle .sk-circle { width: 100%; height: 100%; position: absolute; left: 0; top: 0 } .sk-spinner-circle .sk-circle:before { content: ''; display: block; margin: 0 auto; width: 20%; height: 20%; background-color: #1ab394; border-radius: 100%; -webkit-animation: sk-circleBounceDelay 1.2s infinite ease-in-out; animation: sk-circleBounceDelay 1.2s infinite ease-in-out; -webkit-animation-fill-mode: both; animation-fill-mode: both } .sk-spinner-circle .sk-circle2 { -webkit-transform: rotate(30deg); -ms-transform: rotate(30deg); transform: rotate(30deg) } .sk-spinner-circle .sk-circle3 { -webkit-transform: rotate(60deg); -ms-transform: rotate(60deg); transform: rotate(60deg) } .sk-spinner-circle .sk-circle4 { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg) } .sk-spinner-circle .sk-circle5 { -webkit-transform: rotate(120deg); -ms-transform: rotate(120deg); transform: rotate(120deg) } .sk-spinner-circle .sk-circle6 { -webkit-transform: rotate(150deg); -ms-transform: rotate(150deg); transform: rotate(150deg) } .sk-spinner-circle .sk-circle7 { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg) } .sk-spinner-circle .sk-circle8 { -webkit-transform: rotate(210deg); -ms-transform: rotate(210deg); transform: rotate(210deg) } .sk-spinner-circle .sk-circle9 { -webkit-transform: rotate(240deg); -ms-transform: rotate(240deg); transform: rotate(240deg) } .sk-spinner-circle .sk-circle10 { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg) } .sk-spinner-circle .sk-circle11 { -webkit-transform: rotate(300deg); -ms-transform: rotate(300deg); transform: rotate(300deg) } .sk-spinner-circle .sk-circle12 { -webkit-transform: rotate(330deg); -ms-transform: rotate(330deg); transform: rotate(330deg) } .sk-spinner-circle .sk-circle2:before { -webkit-animation-delay: -1.1s; animation-delay: -1.1s } .sk-spinner-circle .sk-circle3:before { -webkit-animation-delay: -1s; animation-delay: -1s } .sk-spinner-circle .sk-circle4:before { -webkit-animation-delay: -.9s; animation-delay: -.9s } .sk-spinner-circle .sk-circle5:before { -webkit-animation-delay: -.8s; animation-delay: -.8s } .sk-spinner-circle .sk-circle6:before { -webkit-animation-delay: -.7s; animation-delay: -.7s } .sk-spinner-circle .sk-circle7:before { -webkit-animation-delay: -.6s; animation-delay: -.6s } .sk-spinner-circle .sk-circle8:before { -webkit-animation-delay: -.5s; animation-delay: -.5s } .sk-spinner-circle .sk-circle9:before { -webkit-animation-delay: -.4s; animation-delay: -.4s } .sk-spinner-circle .sk-circle10:before { -webkit-animation-delay: -.3s; animation-delay: -.3s } .sk-spinner-circle .sk-circle11:before { -webkit-animation-delay: -.2s; animation-delay: -.2s } .sk-spinner-circle .sk-circle12:before { -webkit-animation-delay: -.1s; animation-delay: -.1s } @-webkit-keyframes sk-circleBounceDelay { 0%, 100%, 80% { -webkit-transform: scale(0); transform: scale(0) } 40% { -webkit-transform: scale(1); transform: scale(1) } } @keyframes sk-circleBounceDelay { 0%, 100%, 80% { -webkit-transform: scale(0); transform: scale(0) } 40% { -webkit-transform: scale(1); transform: scale(1) } } .sk-spinner-cube-grid.sk-spinner { width: 30px; height: 30px; margin: 0 auto } .sk-spinner-cube-grid .sk-cube { width: 33%; height: 33%; background-color: #1ab394; float: left; -webkit-animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out; animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out } .sk-spinner-cube-grid .sk-cube:nth-child(1) { -webkit-animation-delay: .2s; animation-delay: .2s } .sk-spinner-cube-grid .sk-cube:nth-child(2) { -webkit-animation-delay: .3s; animation-delay: .3s } .sk-spinner-cube-grid .sk-cube:nth-child(3) { -webkit-animation-delay: .4s; animation-delay: .4s } .sk-spinner-cube-grid .sk-cube:nth-child(4) { -webkit-animation-delay: .1s; animation-delay: .1s } .sk-spinner-cube-grid .sk-cube:nth-child(5) { -webkit-animation-delay: .2s; animation-delay: .2s } .sk-spinner-cube-grid .sk-cube:nth-child(6) { -webkit-animation-delay: .3s; animation-delay: .3s } .sk-spinner-cube-grid .sk-cube:nth-child(7) { -webkit-animation-delay: 0s; animation-delay: 0s } .sk-spinner-cube-grid .sk-cube:nth-child(8) { -webkit-animation-delay: .1s; animation-delay: .1s } .sk-spinner-cube-grid .sk-cube:nth-child(9) { -webkit-animation-delay: .2s; animation-delay: .2s } @-webkit-keyframes sk-cubeGridScaleDelay { 0%, 100%, 70% { -webkit-transform: scale3D(1, 1, 1); transform: scale3D(1, 1, 1) } 35% { -webkit-transform: scale3D(0, 0, 1); transform: scale3D(0, 0, 1) } } @keyframes sk-cubeGridScaleDelay { 0%, 100%, 70% { -webkit-transform: scale3D(1, 1, 1); transform: scale3D(1, 1, 1) } 35% { -webkit-transform: scale3D(0, 0, 1); transform: scale3D(0, 0, 1) } } .sk-spinner-wordpress.sk-spinner { background-color: #1ab394; width: 30px; height: 30px; border-radius: 30px; position: relative; margin: 0 auto; -webkit-animation: sk-innerCircle 1s linear infinite; animation: sk-innerCircle 1s linear infinite } .sk-spinner-wordpress .sk-inner-circle { display: block; background-color: #fff; width: 8px; height: 8px; position: absolute; border-radius: 8px; top: 5px; left: 5px } @-webkit-keyframes sk-innerCircle { 0% { -webkit-transform: rotate(0); transform: rotate(0) } 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg) } } @keyframes sk-innerCircle { 0% { -webkit-transform: rotate(0); transform: rotate(0) } 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg) } } .sk-spinner-fading-circle.sk-spinner { margin: 0 auto; width: 22px; height: 22px; position: relative } .sk-spinner-fading-circle .sk-circle { width: 100%; height: 100%; position: absolute; left: 0; top: 0 } .sk-spinner-fading-circle .sk-circle:before { content: ''; display: block; margin: 0 auto; width: 18%; height: 18%; background-color: #1ab394; border-radius: 100%; -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out; animation: sk-circleFadeDelay 1.2s infinite ease-in-out; -webkit-animation-fill-mode: both; animation-fill-mode: both } .sk-spinner-fading-circle .sk-circle2 { -webkit-transform: rotate(30deg); -ms-transform: rotate(30deg); transform: rotate(30deg) } .sk-spinner-fading-circle .sk-circle3 { -webkit-transform: rotate(60deg); -ms-transform: rotate(60deg); transform: rotate(60deg) } .sk-spinner-fading-circle .sk-circle4 { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg) } .sk-spinner-fading-circle .sk-circle5 { -webkit-transform: rotate(120deg); -ms-transform: rotate(120deg); transform: rotate(120deg) } .sk-spinner-fading-circle .sk-circle6 { -webkit-transform: rotate(150deg); -ms-transform: rotate(150deg); transform: rotate(150deg) } .sk-spinner-fading-circle .sk-circle7 { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg) } .sk-spinner-fading-circle .sk-circle8 { -webkit-transform: rotate(210deg); -ms-transform: rotate(210deg); transform: rotate(210deg) } .sk-spinner-fading-circle .sk-circle9 { -webkit-transform: rotate(240deg); -ms-transform: rotate(240deg); transform: rotate(240deg) } .sk-spinner-fading-circle .sk-circle10 { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg) } .sk-spinner-fading-circle .sk-circle11 { -webkit-transform: rotate(300deg); -ms-transform: rotate(300deg); transform: rotate(300deg) } .sk-spinner-fading-circle .sk-circle12 { -webkit-transform: rotate(330deg); -ms-transform: rotate(330deg); transform: rotate(330deg) } .sk-spinner-fading-circle .sk-circle2:before { -webkit-animation-delay: -1.1s; animation-delay: -1.1s } .sk-spinner-fading-circle .sk-circle3:before { -webkit-animation-delay: -1s; animation-delay: -1s } .sk-spinner-fading-circle .sk-circle4:before { -webkit-animation-delay: -.9s; animation-delay: -.9s } .sk-spinner-fading-circle .sk-circle5:before { -webkit-animation-delay: -.8s; animation-delay: -.8s } .sk-spinner-fading-circle .sk-circle6:before { -webkit-animation-delay: -.7s; animation-delay: -.7s } .sk-spinner-fading-circle .sk-circle7:before { -webkit-animation-delay: -.6s; animation-delay: -.6s } .sk-spinner-fading-circle .sk-circle8:before { -webkit-animation-delay: -.5s; animation-delay: -.5s } .sk-spinner-fading-circle .sk-circle9:before { -webkit-animation-delay: -.4s; animation-delay: -.4s } .sk-spinner-fading-circle .sk-circle10:before { -webkit-animation-delay: -.3s; animation-delay: -.3s } .sk-spinner-fading-circle .sk-circle11:before { -webkit-animation-delay: -.2s; animation-delay: -.2s } .sk-spinner-fading-circle .sk-circle12:before { -webkit-animation-delay: -.1s; animation-delay: -.1s } @-webkit-keyframes sk-circleFadeDelay { 0%, 100%, 39% { opacity: 0 } 40% { opacity: 1 } } @keyframes sk-circleFadeDelay { 0%, 100%, 39% { opacity: 0 } 40% { opacity: 1 } } body.rtls #page-wrapper { margin: 0 220px 0 0 } body.rtls .nav-second-level li a { padding: 7px 35px 7px 10px } body.rtls .ibox-title h5 { float: right } body.rtls .pull-right { float: left !important } body.rtls .pull-left { float: right !important } body.rtls .ibox-tools, body.rtls .stat-percent { float: left } body.rtls .navbar-right { float: left !important } body.rtls .navbar-top-links li:last-child { margin-right: 0 } body.rtls .minimalize-styl-2 { float: right; margin: 14px 20px 5px 5px } body.rtls .feed-element > .pull-left { margin-left: 10px; margin-right: 0 } body.rtls .timeline-item .date { text-align: left } body.rtls .timeline-item .date i { left: 0; right: auto } body.rtls .timeline-item .content { border-right: 1px solid #e7eaec; border-left: none } body.rtls .toast-close-button { float: left } body.rtls #toast-container > .toast:before { margin: auto -1.5em auto .5em } body.rtls #toast-container > div { padding: 15px 50px 15px 15px } body.rtls .center-orientation .vertical-timeline-icon i { margin-left: 0; margin-right: -12px } body.rtls .vertical-timeline-icon i { right: 50%; left: auto; margin-left: auto; margin-right: -12px } body.rtls .file-box, body.rtls ul.notes li { float: right } body.rtls .chat-statistic, body.rtls .chat-users { margin-right: -30px; margin-left: auto } body.rtls .dropdown-menu > li > a { text-align: right } body.rtls .b-r { border-left: 1px solid #e7eaec; border-right: none } body.rtls .dd-list .dd-list { padding-right: 30px; padding-left: 0 } body.rtls .dd-item > button { float: right } body.rtls .skin-setttings { margin-right: 40px; margin-left: 0; direction: ltr } body.rtls .footer.fixed { margin-right: 220px; margin-left: 0 } @media (max-width: 992px) { body.rtls .chat-statistic, body.rtls .chat-users { margin-right: 0 } } body.body-small.mini-navbar .footer.fixed, body.rtls.mini-navbar .footer.fixed { margin: 0 70px 0 0 } body.body-small.mini-navbar .footer.fixed, body.rtls.mini-navbar.fixed-sidebar .footer.fixed { margin: 0 } body.rtls.top-navigation .navbar-toggle { float: right; margin-left: 15px; margin-right: 15px } .body-small.rtls.top-navigation .navbar-header { float: none } body.rtls.top-navigation #page-wrapper { margin: 0 } body.rtls.mini-navbar #page-wrapper { margin: 0 70px 0 0 } body.rtls.mini-navbar.fixed-sidebar #page-wrapper { margin: 0 } body.rtls.body-small.fixed-sidebar.mini-navbar #page-wrapper { margin: 0 220px 0 0 } body.rtls.body-small.fixed-sidebar.mini-navbar .navbar-static-side { width: 220px } .body-small.rtls .navbar-fixed-top { margin-right: 0 } .body-small.rtls .navbar-header { float: right } body.rtls .navbar-top-links li:last-child { margin-left: 20px } body.rtls .top-navigation #page-wrapper, body.rtls .top-navigation .footer.fixed, body.rtls.mini-navbar .top-navigation #page-wrapper, body.rtls.mini-navbar.top-navigation #page-wrapper, body.rtls.top-navigation .footer.fixed { margin: 0 } @media (max-width: 768px) { body.rtls .navbar-top-links li:last-child { margin-left: 20px } .body-small.rtls #page-wrapper { position: inherit; margin: 0; min-height: 1000px } .body-small.rtls .navbar-static-side { display: none; z-index: 2001; position: absolute; width: 70px } .body-small.rtls.mini-navbar .navbar-static-side { display: block } .rtls.fixed-sidebar.body-small .navbar-static-side { display: none; z-index: 2001; position: fixed; width: 220px } .rtls.fixed-sidebar.body-small.mini-navbar .navbar-static-side { display: block } } .rtls .ltr-support { direction: ltr } .skin-setttings .title { background: #efefef; text-align: center; text-transform: uppercase; font-weight: 600; display: block; padding: 10px 15px; font-size: 12px } .setings-item { padding: 10px 30px } .setings-item.nb { border: none } .setings-item.skin { text-align: center } .setings-item .switch { float: right } .skin-name a { text-transform: uppercase } .setings-item a { color: #fff } .blue-skin, .default-skin, .ultra-skin, .yellow-skin { text-align: center } .default-skin { font-weight: 600; background: #1ab394 } .default-skin:hover { background: #199d82 } .blue-skin { font-weight: 600; background: url(patterns/header-profile-skin-1.png) repeat scroll 0 0 } .blue-skin:hover { background: #0d8ddb } .yellow-skin { font-weight: 600; background: url(patterns/header-profile-skin-3.png) repeat scroll 0 100% } .yellow-skin:hover { background: #ce8735 } .content-tabs { border-bottom: solid 2px #2f4050 } .page-tabs a { color: #999 } .page-tabs a i { color: #ccc } .page-tabs a.active { background: #2f4050; color: #a7b1c2 } .page-tabs a.active i:hover, .page-tabs a.active:hover { background: #293846; color: #fff } .skin-1 .minimalize-styl-2 { margin: 14px 5px 5px 30px } .skin-1 .navbar-top-links li:last-child { margin-right: 30px } .skin-1.fixed-nav .minimalize-styl-2 { margin: 14px 5px 5px 15px } .skin-1 .spin-icon { background: #0e9aef !important } .skin-1 .nav-header { background: #0e9aef; background: url(patterns/header-profile-skin-1.png) } .skin-1.mini-navbar .nav-second-level { background: #3e495f } .skin-1 .breadcrumb { background: 0 0 } .skin-1 .page-heading { border: none } .skin-1 .nav > li.active { background: #3a4459 } .skin-1 .nav > li > a { color: #9ea6b9 } .skin-1 .nav > li.active > a { color: #fff } .skin-1 .navbar-minimalize { background: #0e9aef; border-color: #0e9aef } body.skin-1 { background: #3e495f } .skin-1 .navbar-static-top { background: #fff } .skin-1 .dashboard-header { background: 0 0; border-bottom: none !important; border-top: none; padding: 20px 30px 10px } .fixed-nav.skin-1 .navbar-fixed-top { background: #fff } .skin-1 .wrapper-content { padding: 30px 15px } .skin-1 #page-wrapper { background: #f4f6fa } .skin-1 .ibox-content, .skin-1 .ibox-title { border-width: 1px } .skin-1 .ibox-content:last-child { border-style: solid } .skin-1 .nav > li.active { border: none } .skin-1 .nav-header { padding: 35px 25px 25px } .skin-1 .nav-header a.dropdown-toggle { color: #fff; margin-top: 10px } .skin-1 .nav-header a.dropdown-toggle .text-muted { color: #fff; opacity: .8 } .skin-1 .profile-element { text-align: center } .skin-1 .img-circle { border-radius: 5px } .skin-1 .navbar-default .nav > li > a:focus, .skin-1 .navbar-default .nav > li > a:hover { background: #39aef5; color: #fff } .skin-1 .nav.nav-tabs > li.active > a { color: #555 } .skin-1 .content-tabs { border-bottom: solid 2px #39aef5 } .skin-1 .nav.nav-tabs > li.active { background: 0 0 } .skin-1 .page-tabs a.active { background: #39aef5; color: #fff } .skin-1 .page-tabs a.active i:hover, .skin-1 .page-tabs a.active:hover { background: #0e9aef; color: #fff } .skin-3 .minimalize-styl-2 { margin: 14px 5px 5px 30px } .skin-3 .navbar-top-links li:last-child { margin-right: 30px } .skin-3.fixed-nav .minimalize-styl-2 { margin: 14px 5px 5px 15px } .skin-3 .spin-icon { background: #ecba52 !important } body.boxed-layout.skin-3 #wrapper { background: #3e2c42 } .skin-3 .nav-header { background: #ecba52; background: url(patterns/header-profile-skin-3.png) } .skin-3.mini-navbar .nav-second-level { background: #3e2c42 } .skin-3 .breadcrumb { background: 0 0 } .skin-3 .page-heading { border: none } .skin-3 .nav > li.active { background: #38283c } .fixed-nav.skin-3 .navbar-fixed-top { background: #fff } .skin-3 .nav > li > a { color: #948b96 } .skin-3 .nav > li.active > a { color: #fff } .skin-3 .navbar-minimalize { background: #ecba52; border-color: #ecba52 } body.skin-3 { background: #3e2c42 } .skin-3 .navbar-static-top { background: #fff } .skin-3 .dashboard-header { background: 0 0; border-bottom: none !important; border-top: none; padding: 20px 30px 10px } .skin-3 .wrapper-content { padding: 30px 15px } .skin-3 #page-wrapper { background: #f4f6fa } .skin-3 .ibox-content, .skin-3 .ibox-title { border-width: 1px } .skin-3 .ibox-content:last-child { border-style: solid } .skin-3 .nav > li.active { border: none } .skin-3 .nav-header { padding: 35px 25px 25px } .skin-3 .nav-header a.dropdown-toggle { color: #fff; margin-top: 10px } .skin-3 .nav-header a.dropdown-toggle .text-muted { color: #fff; opacity: .8 } .skin-3 .profile-element { text-align: center } .skin-3 .img-circle { border-radius: 5px } .skin-3 .navbar-default .nav > li > a:focus, .skin-3 .navbar-default .nav > li > a:hover { background: #38283c; color: #fff } .skin-3 .nav.nav-tabs > li.active > a { color: #555 } .skin-3 .content-tabs { border-bottom: solid 2px #3e2c42 } .skin-3 .nav.nav-tabs > li.active { background: 0 0 } .skin-3 .page-tabs a.active { background: #3e2c42; color: #fff } .skin-3 .page-tabs a.active i:hover, .skin-3 .page-tabs a.active:hover { background: #38283c; color: #fff } @media (min-width: 768px) { .navbar-top-links .dropdown-alerts, .navbar-top-links .dropdown-messages, .navbar-top-links .dropdown-tasks { margin-left: auto } } @media (max-width: 768px) { body.fixed-sidebar .navbar-static-side { display: none } body.fixed-sidebar.mini-navbar .navbar-static-side { width: 70px } .lock-word, .navbar-form-custom { display: none } .navbar-header { display: inline; float: left } .sidebard-panel { z-index: 2; position: relative; width: auto; min-height: 100% !important } .sidebar-content .wrapper { padding-right: 0; z-index: 1 } .fixed-sidebar.body-small .navbar-static-side { display: none; z-index: 2001; position: fixed; width: 220px } .fixed-sidebar.body-small.mini-navbar .navbar-static-side { display: block } .ibox-tools { float: none; text-align: right; display: block } .content-tabs { display: none } #content-main { height: calc(100% - 100px) } .fixed-nav #content-main { height: calc(100% - 38px) } } .navbar-static-side { background: #2f4050 } .nav-close { padding: 10px; position: absolute; right: 5px; top: 5px; font-size: 1.4em; cursor: pointer; z-index: 10; display: none; color: rgba(255, 255, 255, .3) } @media (max-width: 350px) { body.fixed-sidebar.mini-navbar .navbar-static-side { width: 0 } .nav-close { display: block } #page-wrapper { margin-left: 0 !important } .timeline-item .date { text-align: left; width: 110px; position: relative; padding-top: 30px } .timeline-item .date i { position: absolute; top: 0; left: 15px; padding: 5px; width: 30px; text-align: center; border: 1px solid #e7eaec; background: #f8f8f8 } .timeline-item .content { border-left: none; border-top: 1px solid #e7eaec; padding-top: 10px; min-height: 100px } .nav.navbar-top-links li.dropdown { display: none } .ibox-tools { float: none; text-align: left; display: inline-block } } .ui-jqgrid-titlebar { height: 40px; line-height: 24px; color: #676a6c; background-color: #F9F9F9; text-shadow: 0 1px 0 rgba(255, 255, 255, .5) } .ui-jqgrid .ui-jqgrid-title { float: left; margin-left: 5px; font-weight: 700 } .ui-jqgrid .ui-jqgrid-titlebar { position: relative; border-left: 0 solid; border-right: 0 solid; border-top: 0 solid } .social-feed-separated .social-feed-box { margin-left: 62px } .social-feed-separated .social-avatar { float: left; padding: 0 } .social-feed-separated .social-avatar img { width: 52px; height: 52px; border: 1px solid #e7eaec } .social-feed-separated .social-feed-box .social-avatar { padding: 15px 15px 0; float: none } .social-feed-box { border: 1px solid #e7eaec; background: #fff; margin-bottom: 15px } .article .social-feed-box { margin-bottom: 0; border-bottom: none } .article .social-feed-box:last-child { margin-bottom: 0; border-bottom: 1px solid #e7eaec } .article .social-feed-box p { font-size: 13px; line-height: 18px } .social-action { margin: 15px } .social-avatar { padding: 15px 15px 0 } .social-comment .social-comment { margin-left: 45px } .social-avatar img { height: 40px; width: 40px; margin-right: 10px } .social-avatar .media-body a { font-size: 14px; display: block } .social-body { padding: 15px } .social-body img { margin-bottom: 10px } .social-footer { border-top: 1px solid #e7eaec; padding: 10px 15px; background: #f9f9f9 } .social-footer .social-comment img { width: 32px; margin-right: 10px } .social-comment:first-child { margin-top: 0 } .social-comment { margin-top: 15px } .social-comment textarea { font-size: 12px } .checkbox input[type=checkbox], .checkbox-inline input[type=checkbox], .radio input[type=radio], .radio-inline input[type=radio] { margin-top: -4px } @media (max-width: 1000px) { .welcome-message { display: none } } .echarts { height: 240px } .checkbox-inline, .checkbox-inline + .checkbox-inline, .radio-inline, .radio-inline + .radio-inline { margin: 0 15px 0 0 } .navbar-toggle { background-color: #fff } .J_menuTab { -webkit-transition: all .3s ease-out 0s; transition: all .3s ease-out 0s } ::-webkit-scrollbar-track { background-color: #F5F5F5 } ::-webkit-scrollbar { width: 6px; background-color: #F5F5F5 } ::-webkit-scrollbar-thumb { background-color: #999 } .gohome { position: fixed; top: 20px; right: 20px; z-index: 100 } .gohome a { height: 38px; width: 38px; display: block; background: #2f4050; padding: 9px 8px; text-align: center; color: #fff; border-radius: 50%; opacity: .5 } .gohome a:hover { opacity: 1 } @media only screen and (-webkit-min-device-pixel-ratio: 2) { #content-main { -webkit-overflow-scrolling: touch; } } .navbar-header { width: 60% } .bs-glyphicons { margin: 0 -10px 20px; overflow: hidden } .bs-glyphicons-list { padding-left: 0; list-style: none } .bs-glyphicons li { float: left; width: 25%; height: 115px; padding: 10px; font-size: 10px; line-height: 1.4; text-align: center; background-color: #f9f9f9; border: 1px solid #fff } .bs-glyphicons .glyphicon { margin-top: 5px; margin-bottom: 10px; font-size: 24px } .bs-glyphicons .glyphicon-class { display: block; text-align: center; word-wrap: break-word } .bs-glyphicons li:hover { color: #fff; background-color: #1ab394 } #detailBody { width: 100%; height: auto; word-wrap: break-word; word-break: break-all; overflow: hidden; } @media (min-width: 768px) { .bs-glyphicons { margin-right: 0; margin-left: 0 } .bs-glyphicons li { width: 12.5%; font-size: 12px } } .btn.active.focus, .btn.active:focus, .btn.focus, .btn:active.focus, .btn:active:focus, .btn:focus { outline: 5px auto; } .chosen-container .chosen-results li.highlighted { background-color: #70AD47; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #70AD47), color-stop(90%, #70AD47)); background-image: linear-gradient(#70AD47 20%, #70AD47 90%); color: #fff; } </style> </head> <body class="gray-bg"> <div class="row border-bottom white-bg dashboard-header"> <div class="col-sm-12 text-center"> <span style="color: #70AD47; font-size: 25px; font-weight: 700">优学乐业测试报告</span> </div> </div> <div class="wrapper wrapper-content animated fadeInRight"> <div class="row"> <div class="col-sm-12"> <div class="ibox float-e-margins"> <div class="ibox-title"> <h5 style="color: #c4c4c4; font-size: 16px">报告汇总</h5> <div class="ibox-tools"> <a class="collapse-link"> <i class="fa fa-chevron-up"></i> </a> <a class="close-link"> <i class="fa fa-times"></i> </a> </div> </div> <div class="ibox-content"> <div class="row"> <div class="col-sm-6 b-r" style="height:350px"> <form class="form-horizontal"> <div class="form-group"> <label class="col-sm-2 control-label text-info">测试人员:</label> <div class="col-sm-5"> <span class="form-control" id="testName"></span> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label text-info">用例总数:</label> <div class="col-sm-5"> <span class="form-control" id="testAll"></span> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label text-navy">用例通过:</label> <div class="col-sm-5"> <span class="form-control" id="testPass"></span> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label text-danger">用例失败:</label> <div class="col-sm-5"> <span class="form-control text-danger" id="testFail"></span> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label text-danger">用例错误:</label> <div class="col-sm-5"> <span class="form-control text-danger" id="testError">1</span> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label text-warning">用例跳过:</label> <div class="col-sm-5"> <span class="form-control text-warning" id="testSkip"></span> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label text-info">开始时间:</label> <div class="col-sm-5"> <span class="form-control" id="beginTime"></span> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label text-info">运行时间:</label> <div class="col-sm-5"> <span class="form-control" id="totalTime"></span> </div> </div> </form> </div> <div class="col-sm-6"> <div style="height:350px" id="echarts-map-chart"></div> </div> </div> </div> </div> </div> </div> <div id="alert-tips" class="alert alert-danger alert-dismissible" role="alert"> <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span> </button> <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <strong>Warning!</strong> 存在报错的用例,请优先查看! </div> <div class="row"> <div class="col-sm-12"> <div class="ibox float-e-margins"> <div class="ibox-title"> <h5 style="color: #c4c4c4; font-size: 16px">详细数据</h5> <div class="ibox-tools"> <a class="collapse-link"> <i class="fa fa-chevron-up"></i> </a> <a class="close-link"> <i class="fa fa-times"></i> </a> </div> </div> <div class="ibox-content"> <div class="input-group panel-heading" style="width: 100%; background-color: #70AD47; margin-bottom: 10px; text-align: left; font-family: Consolas;"> <label style="color: snow">测试类:</label> <select class="chosen-select form-control" data-placeholder="ALL" style="width: 300px;" name="filterClass" id="filterClass"> <option value="">ALL</option> </select> <label style="color: snow;margin-left: 10px;">结果:</label> <select class="chosen-select form-control" data-placeholder="ALL" style="width: 300px;" name="filterResult" id="filterResult"> <option value="">ALL</option> </select> <div style="float: right"> <label class="form-control"> <span class="text-info">用例数: </span><span class="text-info" id="filterAll">3</span><span> | </span> <span class="text-success">成功: </span><span class="text-success" id="filterOk">3</span><span> | </span> <span class="text-danger">失败: </span><span class="text-danger" id="filterFail">3</span><span> | </span> <span class="text-warning">跳过: </span><span class="text-warning" id="filterSkip">3</span> </label> </div> </div> <table class="table table-bordered"> <thead> <tr> <th>编号</th> <th>测试类</th> <th>测试方法</th> <th>用例描述</th> <th>运行时长</th> <th>结果</th> <th>操作</th> </tr> </thead> <tbody id="detailBody"> </tbody> </table> </div> </div> </div> </div> </div> <script src="https://cdn.bootcss.com/jquery/2.1.4/jquery.min.js"></script> <script src="https://cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <script src="https://cdn.bootcss.com/echarts/3.8.5/echarts.min.js"></script> <script src="https://cdn.bootcss.com/chosen/1.8.2/chosen.jquery.js"></script> <script type="text/javascript"> function animationHover(o, e) { o = $(o), o.hover(function () { o.addClass("animated " + e) }, function () { window.setTimeout(function () { o.removeClass("animated " + e) }, 2e3) }) } function WinMove() { var o = "[class*=col]", e = ".ibox-title", i = "[class*=col]"; $(o).sortable({ handle: e, connectWith: i, tolerance: "pointer", forcePlaceholderSize: !0, opacity: .8 }).disableSelection() } if ($(".tooltip-demo").tooltip({ selector: "[data-toggle=tooltip]", container: "body" }), $(".modal").appendTo("body"), $("[data-toggle=popover]").popover(), $(".collapse-link").click(function () { var o = $(this).closest("div.ibox"), e = $(this).find("i"), i = o.find("div.ibox-content"); i.slideToggle(200), e.toggleClass("fa-chevron-up").toggleClass("fa-chevron-down"), o.toggleClass("").toggleClass("border-bottom"), setTimeout(function () { o.resize(), o.find("[id^=map-]").resize() }, 50) }), $(".close-link").click(function () { var o = $(this).closest("div.ibox"); o.remove() }), top == this) { } var resultData = { "testPass": 142, "testResult": [ { "className": "TestLogin", "methodName": "test_login_1", "description": "登陆成功", "spendTime": "0.451s", "status": "成功", "log": ["用例入参:{'way': 'name', 'password': 'f85eea0e15e424aba8675f8848e2cb83', 'type': 'teacher', 'username': '17301249975', 'schoolId': '1519958566130257922'}\n预期结果:{'msg': 'success', 'code': 200}\n实际结果:{'msg': 'success', 'code': 200, 'data': {'access_token': 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRUeXBlIjoiIiwiYnJva2VySWQiOiIiLCJocm9Vc2VyVG9rZW4iOm51bGwsInVzZXJfbmFtZSI6IjE3MzAxMjQ5OTc1IiwiYXV0aFN0YXR1cyI6IiIsImF1dGhlbnRpY2F0aW9uSWRlbnRpdHkiOiJsb2dpbiIsInR5cGUiOiJ0ZWFjaGVyIiwidXNlcklkIjoiMTUxOTk1OTIwODUyOTg2Njc1MyIsImNsaWVudF9pZCI6IndvcmthaSIsInN0dWRlbnRJZCI6IiIsInRlYWNoZXJJZCI6IjE1MTk5NTkyMDkyNzY0NTI4NjUiLCJ0ZW5hbnROYW1lIjoiIiwicGhvbmUiOiIxNzMwMTI0OTk3NSIsInNjb3BlIjpbImFsbCJdLCJzY2hvb2xJZCI6IjE1MTk5NTg1NjYxMzAyNTc5MjIiLCJ0ZW5hbnRJZCI6IiIsIm5hbWUiOiLmoKHplb8iLCJzdHVkZW50U3RhdHVzIjoiIiwiZXhwIjoxNjcyOTM0NjY0LCJzY2hvb2xOYW1lIjoi5rWL6K-V5aSn5a2mX-iHquWKqOWMluS4k-eUqCIsImp0aSI6ImYxMzE1NGViLTJmZjMtNDg3Zi1iOTExLTRmNThlMzIxYWZkMCIsInN0YXR1cyI6ImFjdGl2ZSJ9.i-KOp2vydziNYOSP9Gs5bPI5qSfYJl5b91Fq-9VRZ9LNFTIn6wuPSRNGPPq4Y7RGob3AxMZeZfcJ640V4kn9GYQNUh_Ul9ljrJNXFXib2tPaHKz0TGJfaimMQ8JfQ2pE2QjzdvRjvIL08i8WiRAD9HHnqoye7y16gQMQ7ofbDCPITwIdq4cbozRaBvFg2fph2Y2oAV295PQIo9nGswspw8T7cd5HcGft6k9WmpqTVqGmyGP-RvUEA6mNmYgXCaklDrBOVr7H2CmWl1VSwO6cYL3eybemlnKoIXxcsaetW8ysWHIsABjutDNuoS6kBrzP2VRem3e0_tzKAk7PlH-rdQ', 'token_type': 'bearer', 'refresh_token': 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRUeXBlIjoiIiwiYnJva2VySWQiOiIiLCJocm9Vc2VyVG9rZW4iOm51bGwsInVzZXJfbmFtZSI6IjE3MzAxMjQ5OTc1IiwiYXV0aFN0YXR1cyI6IiIsImF1dGhlbnRpY2F0aW9uSWRlbnRpdHkiOiJsb2dpbiIsInR5cGUiOiJ0ZWFjaGVyIiwidXNlcklkIjoiMTUxOTk1OTIwODUyOTg2Njc1MyIsImNsaWVudF9pZCI6IndvcmthaSIsInN0dWRlbnRJZCI6IiIsInRlYWNoZXJJZCI6IjE1MTk5NTkyMDkyNzY0NTI4NjUiLCJ0ZW5hbnROYW1lIjoiIiwicGhvbmUiOiIxNzMwMTI0OTk3NSIsInNjb3BlIjpbImFsbCJdLCJzY2hvb2xJZCI6IjE1MTk5NTg1NjYxMzAyNTc5MjIiLCJhdGkiOiJmMTMxNTRlYi0yZmYzLTQ4N2YtYjkxMS00ZjU4ZTMyMWFmZDAiLCJ0ZW5hbnRJZCI6IiIsIm5hbWUiOiLmoKHplb8iLCJzdHVkZW50U3RhdHVzIjoiIiwiZXhwIjoxNjcyOTcwNjY0LCJzY2hvb2xOYW1lIjoi5rWL6K-V5aSn5a2mX-iHquWKqOWMluS4k-eUqCIsImp0aSI6IjE1ZDUxMmQ3LTUyYzktNDE2ZS1iOGQ4LTEzODRiNjY2OGJmMyIsInN0YXR1cyI6ImFjdGl2ZSJ9.R78elTXsTaYcgHIkdU29R3Vk_yLXop3CYpzV_j5X7WoANzs-KkbOq5XmSrNbadbhNDD7aDUOMHSas__T3chMjt6MeYTk6awm2TDqbC2tuWSWKLNjYtEbl2nN9_pY021CPq12KnUDpzy602WnEa8W6vDcBMQq_sFBWK7mNJ21PWymxCxa0yDUtBSy3giZJTaPc32J_9colvdxJpDUKK5NUejy__MjZMecxwuvbHRW2uw116R43Q1SpXAjEfdB_qD7PoJ2rqvetsMzZi2a8ABeOZvceVogE5wCMnW8qvGX3GkZQ4goV5UYgOCxhv_8IBBXqyP_BDzhy9S8E-nrqk_6NQ', 'expires_in': 35999, 'scope': 'all', 'tenantType': '', 'brokerId': '', 'hroUserToken': None, 'authStatus': '', 'authenticationIdentity': 'login', 'type': 'teacher', 'userId': '1519959208529866753', 'studentId': '', 'teacherId': '1519959209276452865', 'tenantName': '', 'phone': '17301249975', 'schoolId': '1519958566130257922', 'tenantId': '', 'name': '校长', 'studentStatus': '', 'schoolName': '测试大学_自动化专用', 'status': 'active', 'jti': 'f13154eb-2ff3-487f-b911-4f58e321afd0'}}\ntest_login_1 (test_01_login.TestLogin)执行——>【通过】\n"] }, { "className": "TestLogin", "methodName": "test_login_2", "description": "手机号填写错误的", "spendTime": "0.225s", "status": "成功", "log": ["用例入参:{'way': 'name', 'username': '17301149975', 'password': 'f85eea0e15e424aba8675f8848e2cb83', 'type': 'teacher'}\n预期结果:{'code': 500, 'data': None, 'msg': '用户不存在'}\n实际结果:{'code': 500, 'data': None, 'msg': '用户不存在'}\ntest_login_2 (test_01_login.TestLogin)执行——>【通过】\n"] }, { "className": "TestLogin", "methodName": "test_login_3", "description": "手机号不进行填写", "spendTime": "0.214s", "status": "成功", "log": ["用例入参:{'way': 'name', 'username': '', 'password': 'f85eea0e15e424aba8675f8848e2cb83', 'type': 'teacher'}\n预期结果:{'code': 500, 'data': None, 'msg': '用户名和密码不能为空'}\n实际结果:{'code': 500, 'data': None, 'msg': '用户名和密码不能为空'}\ntest_login_3 (test_01_login.TestLogin)执行——>【通过】\n"] }, { "className": "TestLogin", "methodName": "test_login_4", "description": "密码填写错误", "spendTime": "0.321s", "status": "成功", "log": ["用例入参:{'way': 'name', 'username': '17301249975', 'password': 'f85eea0e115e424aba8675f8848e2cb83', 'type': 'teacher'}\n预期结果:{'code': 500, 'data': None, 'msg': '密码不正确'}\n实际结果:{'code': 500, 'data': None, 'msg': '密码不正确'}\ntest_login_4 (test_01_login.TestLogin)执行——>【通过】\n"] }, { "className": "TestLogin", "methodName": "test_login_5", "description": "密码不进行填写", "spendTime": "0.218s", "status": "成功", "log": ["用例入参:{'way': 'name', 'username': '17301249975', 'password': '', 'type': 'teacher'}\n预期结果:{'code': 500, 'data': None, 'msg': '用户名和密码不能为空'}\n实际结果:{'code': 500, 'data': None, 'msg': '用户名和密码不能为空'}\ntest_login_5 (test_01_login.TestLogin)执行——>【通过】\n"] }, { "className": "Test01Department", "methodName": "test_add_department_1", "description": "新增院系成功", "spendTime": "0.265s", "status": "成功", "log": ["用例入参:{'name': 'py自动化院系20230105_14:04:27_1', 'code': 'py_code20230105_14:04:27_1'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_department_1 (test_02_system_management.Test01Department)执行——>【通过】\n"] }, { "className": "Test01Department", "methodName": "test_add_department_2", "description": "院系名称未填写", "spendTime": "0.261s", "status": "成功", "log": ["用例入参:{'name': '', 'code': 'py_code20230105_14:04:27_2'}\n预期结果: {'msg': '院系名称不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '院系名称不能为空', 'code': 500, 'data': None}\ntest_add_department_2 (test_02_system_management.Test01Department)执行——>【通过】\n"] }, { "className": "Test01Department", "methodName": "test_add_department_3", "description": "院系名称重复", "spendTime": "0.269s", "status": "成功", "log": ["用例入参:{'name': '院系1', 'code': 'py_code20230105_14:04:28_3'}\n预期结果: {'msg': '院系名称已存在,请确认', 'code': 500, 'data': None}\n实际结果: {'msg': '院系名称已存在,请确认', 'code': 500, 'data': None}\ntest_add_department_3 (test_02_system_management.Test01Department)执行——>【通过】\n"] }, { "className": "Test01Department", "methodName": "test_add_department_4", "description": "院系名称长度不可大于30位", "spendTime": "0.268s", "status": "成功", "log": ["用例入参:{'name': '院系名称长度大于30的测试院系名称长度大于30的测试院系名称长度大于30的测试院系名称长度大于30的测试', 'code': 'py_code20230105_14:04:28_4'}\n预期结果: {'msg': '院系名称长度不可大于30位', 'code': 500, 'data': None}\n实际结果: {'msg': '院系名称长度不可大于30位', 'code': 500, 'data': None}\ntest_add_department_4 (test_02_system_management.Test01Department)执行——>【通过】\n"] }, { "className": "Test01Department", "methodName": "test_add_department_5", "description": "院系代码重复", "spendTime": "0.262s", "status": "成功", "log": ["用例入参:{'name': 'py自动化院系20230105_14:04:28_5', 'code': '批量导入院系'}\n预期结果: {'msg': '院系代码已存在,请确认', 'code': 500, 'data': None}\n实际结果: {'msg': '院系代码已存在,请确认', 'code': 500, 'data': None}\ntest_add_department_5 (test_02_system_management.Test01Department)执行——>【通过】\n"] }, { "className": "Test01Department", "methodName": "test_add_department_6", "description": "院系代码不能为空", "spendTime": "0.263s", "status": "成功", "log": ["用例入参:{'name': 'py自动化院系20230105_14:04:29_6', 'code': ''}\n预期结果: {'msg': '院系代码不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '院系代码不能为空', 'code': 500, 'data': None}\ntest_add_department_6 (test_02_system_management.Test01Department)执行——>【通过】\n"] }, { "className": "Test01Department", "methodName": "test_add_department_7", "description": "院系代码长度不可大于30", "spendTime": "0.281s", "status": "成功", "log": ["用例入参:{'name': 'py自动化院系20230105_14:04:29_7', 'code': '院系代码长度大于30的测试院系代码长度大于30的测试院系代码长度大于30的测试'}\n预期结果: {'msg': '院系代码长度不可大于30', 'code': 500, 'data': None}\n实际结果: {'msg': '院系代码长度不可大于30', 'code': 500, 'data': None}\ntest_add_department_7 (test_02_system_management.Test01Department)执行——>【通过】\n"] }, { "className": "Test01Department", "methodName": "test_add_department_8", "description": "新增院系成功", "spendTime": "0.286s", "status": "成功", "log": ["用例入参:{'name': 'py自动化院系20230105_14:04:29_8', 'code': 'py_code20230105_14:04:29_8'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_department_8 (test_02_system_management.Test01Department)执行——>【通过】\n"] }, { "className": "Test01Department", "methodName": "test_select_department_1", "description": "查看院系列表", "spendTime": "0.329s", "status": "成功", "log": ["用例入参:{'pageNumber': '0', 'pageSize': '3'}\n预期结果: {'msg': 'success', 'code': 200}\n实际结果: {'msg': 'success', 'code': 200, 'data': {'records': [{'id': '1519960493236785154', 'schoolId': '1519958566130257922', 'name': '第一院系-1-修改1', 'code': '第一院系-1', 'createdBy': '1519959209276452865', 'createdTime': 1651221796000, 'updatedBy': '1519959209276452865', 'updatedTime': 1653018193000}, {'id': '1519960538489131009', 'schoolId': '1519958566130257922', 'name': '第二院系-22', 'code': '第二院系-22', 'createdBy': '1519959209276452865', 'createdTime': 1651221807000, 'updatedBy': '1519959209276452865', 'updatedTime': 1652281988000}, {'id': '1519960582474797058', 'schoolId': '1519958566130257922', 'name': '第三院系-3', 'code': '第三院系-3', 'createdBy': '1519959209276452865', 'createdTime': 1651221817000, 'updatedBy': None, 'updatedTime': None}, {'id': '1522126666221019137', 'schoolId': '1519958566130257922', 'name': '大_批量导入院系', 'code': '大_批量导入院系', 'createdBy': '1519959209276452865', 'createdTime': 1651738252000, 'updatedBy': None, 'updatedTime': None}, {'id': '1522150977187188738', 'schoolId': '1519958566130257922', 'name': '批量导入院系', 'code': '批量导入院系', 'createdBy': '1519959209276452865', 'createdTime': 1651744048000, 'updatedBy': None, 'updatedTime': None}, {'id': '1524276366210510849', 'schoolId': '1519958566130257922', 'name': '流程sss', 'code': '流程sss', 'createdBy': '1519959209276452865', 'createdTime': 1652250780000, 'updatedBy': None, 'updatedTime': None}, {'id': '1527478217726754818', 'schoolId': '1519958566130257922', 'name': '添加缓存后', 'code': '添加缓存后', 'createdBy': '1519959209276452865', 'createdTime': 1653014161000, 'updatedBy': None, 'updatedTime': None}, {'id': '1527479106566881282', 'schoolId': '1519958566130257922', 'name': 'ssss添加缓存后-院系-1-修改1', 'code': 'ssss添加缓存后-院系-1-修改1', 'createdBy': '1519959209276452865', 'createdTime': 1653014373000, 'updatedBy': '1519959209276452865', 'updatedTime': 1653015920000}, {'id': '1537365491176304642', 'schoolId': '1519958566130257922', 'name': '院系1', 'code': '院系1', 'createdBy': '1519959209276452865', 'createdTime': 1655371471000, 'updatedBy': None, 'updatedTime': None}, {'id': '1537365542577500162', 'schoolId': '1519958566130257922', 'name': '院系2', 'code': '院系2', 'createdBy': '1519959209276452865', 'createdTime': 1655371483000, 'updatedBy': None, 'updatedTime': None}, {'id': '1537365589180411906', 'schoolId': '1519958566130257922', 'name': '院系3', 'code': '院系3', 'createdBy': '1519959209276452865', 'createdTime': 1655371494000, 'updatedBy': None, 'updatedTime': None}, {'id': '1537365618314047490', 'schoolId': '1519958566130257922', 'name': '院系4', 'code': '院系4', 'createdBy': '1519959209276452865', 'createdTime': 1655371501000, 'updatedBy': None, 'updatedTime': None}, {'id': '1537365645191147521', 'schoolId': '1519958566130257922', 'name': '院系5', 'code': '院系5', 'createdBy': '1519959209276452865', 'createdTime': 1655371507000, 'updatedBy': None, 'updatedTime': None}, {'id': '1537365671829172225', 'schoolId': '1519958566130257922', 'name': '院系6', 'code': '院系6', 'createdBy': '1519959209276452865', 'createdTime': 1655371514000, 'updatedBy': None, 'updatedTime': None}, {'id': '1537365714241974274', 'schoolId': '1519958566130257922', 'name': '院系7', 'code': '院系7', 'createdBy': '1519959209276452865', 'createdTime': 1655371524000, 'updatedBy': None, 'updatedTime': None}], 'total': 542, 'size': 15, 'current': 1, 'orders': [], 'optimizeCountSql': True, 'searchCount': True, 'countId': '', 'maxLimit': None, 'pages': 37}}\ntest_select_department_1 (test_02_system_management.Test01Department)执行——>【通过】\n"] }, { "className": "Test02Specialty", "methodName": "test_add_specialty_01", "description": "新增专业成功", "spendTime": "1.01s", "status": "成功", "log": ["用例入参:{'name': 'py专业14:04:30_1', 'code': 'py_code14:04:30_1', 'departmentId': '1610879885310816257', 'category': 'science'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_specialty_01 (test_02_system_management.Test02Specialty)执行——>【通过】\n"] }, { "className": "Test02Specialty", "methodName": "test_add_specialty_02", "description": "新增专业失败,院系未填写", "spendTime": "0.979s", "status": "成功", "log": ["用例入参:{'name': 'py专业14:04:31_2', 'code': 'py_code14:04:31_2', 'departmentId': '', 'category': 'science'}\n预期结果: {'msg': '院系不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '院系不能为空', 'code': 500, 'data': None}\ntest_add_specialty_02 (test_02_system_management.Test02Specialty)执行——>【通过】\n"] }, { "className": "Test02Specialty", "methodName": "test_add_specialty_03", "description": "新增专业失败,院系不存在", "spendTime": "0.972s", "status": "成功", "log": ["用例入参:{'name': 'py专业14:04:32_3', 'code': 'py_code14:04:32_3', 'departmentId': '23232333333', 'category': 'science'}\n预期结果: {'msg': '院系不存在', 'code': 500, 'data': None}\n实际结果: {'msg': '院系不存在', 'code': 500, 'data': None}\ntest_add_specialty_03 (test_02_system_management.Test02Specialty)执行——>【通过】\n"] }, { "className": "Test02Specialty", "methodName": "test_add_specialty_04", "description": "新增专业失败,专业名称未填写", "spendTime": "1.02s", "status": "成功", "log": ["用例入参:{'name': '', 'code': 'py_code14:04:33_4', 'departmentId': '1610879885310816257', 'category': 'science'}\n预期结果: {'msg': '专业名称不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '专业名称不能为空', 'code': 500, 'data': None}\ntest_add_specialty_04 (test_02_system_management.Test02Specialty)执行——>【通过】\n"] }, { "className": "Test02Specialty", "methodName": "test_add_specialty_05", "description": "专业名称长度不能大于30", "spendTime": "0.992s", "status": "成功", "log": ["用例入参:{'name': '专业大于301234567890专业大于301234567890', 'code': 'py_code14:04:34_5', 'departmentId': '1610879885310816257', 'category': 'science'}\n预期结果: {'msg': '专业名称长度不能大于30', 'code': 500, 'data': None}\n实际结果: {'msg': '专业名称长度不能大于30', 'code': 500, 'data': None}\ntest_add_specialty_05 (test_02_system_management.Test02Specialty)执行——>【通过】\n"] }, { "className": "Test02Specialty", "methodName": "test_add_specialty_06", "description": "新增专业失败,专业名称重复", "spendTime": "0.983s", "status": "成功", "log": ["用例入参:{'name': '第二个专业-2-1', 'code': 'py_code14:04:35_6', 'departmentId': '1610879885310816257', 'category': 'science'}\n预期结果: {'msg': '专业名称已存在,请确认', 'code': 500, 'data': None}\n实际结果: {'msg': '专业名称已存在,请确认', 'code': 500, 'data': None}\ntest_add_specialty_06 (test_02_system_management.Test02Specialty)执行——>【通过】\n"] }, { "className": "Test02Specialty", "methodName": "test_add_specialty_07", "description": "新增专业失败,专业代码重复", "spendTime": "0.993s", "status": "成功", "log": ["用例入参:{'name': 'py专业14:04:36_7', 'code': '12', 'departmentId': '1610879885310816257', 'category': 'science'}\n预期结果: {'msg': '专业代码已存在,请确认', 'code': 500, 'data': None}\n实际结果: {'msg': '专业代码已存在,请确认', 'code': 500, 'data': None}\ntest_add_specialty_07 (test_02_system_management.Test02Specialty)执行——>【通过】\n"] }, { "className": "Test02Specialty", "methodName": "test_add_specialty_08", "description": "新增专业失败,专业代码未填写", "spendTime": "1.12s", "status": "成功", "log": ["用例入参:{'name': 'py专业14:04:37_8', 'code': '', 'departmentId': '1610879885310816257', 'category': 'science'}\n预期结果: {'msg': '专业代码不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '专业代码不能为空', 'code': 500, 'data': None}\ntest_add_specialty_08 (test_02_system_management.Test02Specialty)执行——>【通过】\n"] }, { "className": "Test02Specialty", "methodName": "test_add_specialty_09", "description": "新增专业失败,专业代码长度不能大于30", "spendTime": "1.04s", "status": "成功", "log": ["用例入参:{'name': 'py专业14:04:38_9', 'code': '专业代码大于301234567890专业大于301234567890', 'departmentId': '1610879885310816257', 'category': 'science'}\n预期结果: {'msg': '专业代码长度不能大于30', 'code': 500, 'data': None}\n实际结果: {'msg': '专业代码长度不能大于30', 'code': 500, 'data': None}\ntest_add_specialty_09 (test_02_system_management.Test02Specialty)执行——>【通过】\n"] }, { "className": "Test02Specialty", "methodName": "test_add_specialty_10", "description": "新增专业失败,学科门类未填写", "spendTime": "1.08s", "status": "成功", "log": ["用例入参:{'name': 'py专业14:04:39_10', 'code': 'py_code14:04:39_10', 'departmentId': '1610879885310816257', 'category': ''}\n预期结果: {'msg': '学科门类不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '学科门类不能为空', 'code': 500, 'data': None}\ntest_add_specialty_10 (test_02_system_management.Test02Specialty)执行——>【通过】\n"] }, { "className": "Test02Specialty", "methodName": "test_add_specialty_11", "description": "新增专业失败,学科门类填写错误", "spendTime": "0.995s", "status": "成功", "log": ["用例入参:{'name': 'py专业14:04:40_11', 'code': 'py_code14:04:40_11', 'departmentId': '1610879885310816257', 'category': 'scienwce'}\n预期结果: {'msg': '学科门类不存在', 'code': 500, 'data': None}\n实际结果: {'msg': '学科门类不存在', 'code': 500, 'data': None}\ntest_add_specialty_11 (test_02_system_management.Test02Specialty)执行——>【通过】\n"] }, { "className": "Test02Specialty", "methodName": "test_add_specialty_12", "description": "新增专业成功", "spendTime": "1.08s", "status": "成功", "log": ["用例入参:{'name': 'py专业14:04:41_12', 'code': 'py_code14:04:41_12', 'departmentId': '1610879885310816257', 'category': 'science'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_specialty_12 (test_02_system_management.Test02Specialty)执行——>【通过】\n"] }, { "className": "Test03Year", "methodName": "test_add_year_1", "description": "新增学年学期成功", "spendTime": "0.295s", "status": "成功", "log": ["用例入参:{'year': 'py学年14:04:43_1', 'remark': 'py_comment备注14:04:43_1', 'terms': [{'sort': 1, 'startTime': 1667376499000, 'endTime': 1704115459000}]}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_year_1 (test_02_system_management.Test03Year)执行——>【通过】\n"] }, { "className": "Test03Year", "methodName": "test_add_year_2", "description": "学年名称不可超过30字", "spendTime": "0.265s", "status": "成功", "log": ["用例入参:{'year': '1234567890123456789012345678901', 'remark': 'py_comment备注14:04:43_2', 'terms': [{'sort': 1, 'startTime': 1667376499000, 'endTime': 1704115459000}]}\n预期结果: {'msg': '学年长度不可大于30位', 'code': 500, 'data': None}\n实际结果: {'msg': '学年长度不可大于30位', 'code': 500, 'data': None}\ntest_add_year_2 (test_02_system_management.Test03Year)执行——>【通过】\n"] }, { "className": "Test03Year", "methodName": "test_add_year_3", "description": "学年学期开始时间和结束时间不可交叉", "spendTime": "0.29s", "status": "成功", "log": ["用例入参:{'year': 'py学年14:04:43_3', 'remark': 'py_comment备注14:04:43_3', 'terms': [{'sort': 1, 'startTime': 1667376499000, 'endTime': 1704115459000}, {'sort': 2, 'startTime': 1667376499000, 'endTime': 1704115459000}]}\n预期结果: {'msg': '学期起止时间不能交叉', 'code': 500, 'data': None}\n实际结果: {'msg': '学期起止时间不能交叉', 'code': 500, 'data': None}\ntest_add_year_3 (test_02_system_management.Test03Year)执行——>【通过】\n"] }, { "className": "Test03Year", "methodName": "test_add_year_4", "description": "学年未填写", "spendTime": "0.304s", "status": "成功", "log": ["用例入参:{'year': '', 'remark': 'py_comment备注14:04:44_4', 'terms': [{'sort': 1, 'startTime': 1667376499000, 'endTime': 1704115459000}]}\n预期结果: {'msg': '学年不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '学年不能为空', 'code': 500, 'data': None}\ntest_add_year_4 (test_02_system_management.Test03Year)执行——>【通过】\n"] }, { "className": "Test03Year", "methodName": "test_add_year_5", "description": "学期未填写", "spendTime": "0.273s", "status": "成功", "log": ["用例入参:{'year': 'py学年14:04:44_5', 'remark': 'py_comment备注14:04:44_5', 'terms': [{'sort': '', 'startTime': 1667376499000, 'endTime': 1704115459000}]}\n预期结果: {'msg': '学期排序不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '学期排序不能为空', 'code': 500, 'data': None}\ntest_add_year_5 (test_02_system_management.Test03Year)执行——>【通过】\n"] }, { "className": "Test03Year", "methodName": "test_add_year_6", "description": "学期开始时间未填写", "spendTime": "0.274s", "status": "成功", "log": ["用例入参:{'year': 'py学年14:04:44_6', 'remark': 'py_comment备注14:04:44_6', 'terms': [{'sort': 1, 'startTime': '', 'endTime': 1704115459000}]}\n预期结果: {'msg': '学期开始时间不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '学期开始时间不能为空', 'code': 500, 'data': None}\ntest_add_year_6 (test_02_system_management.Test03Year)执行——>【通过】\n"] }, { "className": "Test03Year", "methodName": "test_add_year_7", "description": "学期结束时间未填写", "spendTime": "0.252s", "status": "成功", "log": ["用例入参:{'year': 'py学年14:04:44_7', 'remark': 'py_comment备注14:04:44_7', 'terms': [{'sort': 1, 'startTime': 1704115459000, 'endTime': ''}]}\n预期结果: {'msg': '学期结束时间不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '学期结束时间不能为空', 'code': 500, 'data': None}\ntest_add_year_7 (test_02_system_management.Test03Year)执行——>【通过】\n"] }, { "className": "Test03Year", "methodName": "test_add_year_8", "description": "学期不可超过5个学期", "spendTime": "0.267s", "status": "成功", "log": ["用例入参:{'year': 'py学年14:04:45_8', 'remark': 'py_comment备注14:04:45_8', 'terms': [{'sort': 1, 'startTime': 154632003000, 'endTime': 154882563000}, {'sort': 2, 'startTime': 154899843000, 'endTime': 155150403000}, {'sort': 3, 'startTime': 155141763000, 'endTime': 155392323000}, {'sort': 4, 'startTime': 155668803000, 'endTime': 155936643000}, {'sort': 5, 'startTime': 156195843000, 'endTime': 156463683000}]}\n预期结果: {'msg': '学期应填写1-4个', 'code': 500, 'data': None}\n实际结果: {'msg': '学期应填写1-4个', 'code': 500, 'data': None}\ntest_add_year_8 (test_02_system_management.Test03Year)执行——>【通过】\n"] }, { "className": "Test03Year", "methodName": "test_add_year_9", "description": "新增学年学期成功", "spendTime": "0.297s", "status": "成功", "log": ["用例入参:{'year': 'py学年14:04:45_9', 'remark': 'py_comment备注14:04:45_9', 'terms': [{'sort': 1, 'startTime': 1667376499000, 'endTime': 1704115459000}]}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_year_9 (test_02_system_management.Test03Year)执行——>【通过】\n"] }, { "className": "Test01Teacher", "methodName": "test_add_teacher_info_01", "description": "新增教师", "spendTime": "0.488s", "status": "成功", "log": ["用例入参:{'name': 'py自动化教师20230105_14:04:46_1', 'number': '13608994923', 'departmentIds': ['1610879885310816257'], 'phone': '13608994923', 'classInfoId': '', 'idType': 'identity_card', 'idNumber': '140101201206160864', 'gender': 0, 'entryTime': 1663084800000, 'email': '63098113069@163.com', 'professionalIds': [], 'roleIds': ['968160378070540291'], 'permissionScope': '1610879885310816257'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_teacher_info_01 (test_03_teaching_affairs.Test01Teacher)执行——>【通过】\n"] }, { "className": "Test01Teacher", "methodName": "test_add_teacher_info_02", "description": "教师姓名不能为空", "spendTime": "0.28s", "status": "成功", "log": ["用例入参:{'name': '', 'number': '13651109673', 'departmentIds': ['1610879885310816257'], 'phone': '13651109673', 'classInfoId': '', 'idType': 'identity_card', 'idNumber': '350101202009260851', 'gender': 0, 'entryTime': 1663084800000, 'email': '4215818066@163.com', 'professionalIds': [], 'roleIds': ['968160378070540291'], 'permissionScope': '1610879885310816257'}\n预期结果: {'msg': '教师姓名不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '教师姓名不能为空', 'code': 500, 'data': None}\ntest_add_teacher_info_02 (test_03_teaching_affairs.Test01Teacher)执行——>【通过】\n"] }, { "className": "Test01Teacher", "methodName": "test_add_teacher_info_03", "description": "教师手机号不能为空", "spendTime": "0.261s", "status": "成功", "log": ["用例入参:{'name': 'py自动化教师20230105_14:04:47_3', 'number': '13386521369', 'departmentIds': ['1610879885310816257'], 'phone': '', 'classInfoId': '', 'idType': 'identity_card', 'idNumber': '440101194509201035', 'gender': 0, 'entryTime': 1663084800000, 'email': '18150341461@163.com', 'professionalIds': [], 'roleIds': ['968160378070540291'], 'permissionScope': '1610879885310816257'}\n预期结果: {'msg': '教师手机号不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '教师手机号不能为空', 'code': 500, 'data': None}\ntest_add_teacher_info_03 (test_03_teaching_affairs.Test01Teacher)执行——>【通过】\n"] }, { "className": "Test01Teacher", "methodName": "test_add_teacher_info_04", "description": "教师证件类型不能为空", "spendTime": "0.256s", "status": "成功", "log": ["用例入参:{'name': 'py自动化教师20230105_14:04:47_4', 'number': '13384709381', 'departmentIds': ['1610879885310816257'], 'phone': '13384709381', 'classInfoId': '', 'idType': '', 'idNumber': '520101197208241109', 'gender': 0, 'entryTime': 1663084800000, 'email': '3788625953@163.com', 'professionalIds': [], 'roleIds': ['968160378070540291'], 'permissionScope': '1610879885310816257'}\n预期结果: {'msg': '教师证件类别不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '教师证件类别不能为空', 'code': 500, 'data': None}\ntest_add_teacher_info_04 (test_03_teaching_affairs.Test01Teacher)执行——>【通过】\n"] }, { "className": "Test01Teacher", "methodName": "test_add_teacher_info_05", "description": "教师证件号码不能为空", "spendTime": "0.294s", "status": "成功", "log": ["用例入参:{'name': 'py自动化教师20230105_14:04:48_5', 'number': '15511304506', 'departmentIds': ['1610879885310816257'], 'phone': '15511304506', 'classInfoId': '', 'idType': 'identity_card', 'idNumber': '', 'gender': 0, 'entryTime': 1663084800000, 'email': '15107142576@163.com', 'professionalIds': [], 'roleIds': ['968160378070540291'], 'permissionScope': '1610879885310816257'}\n预期结果: {'msg': '教师证件号码不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '教师证件号码不能为空', 'code': 500, 'data': None}\ntest_add_teacher_info_05 (test_03_teaching_affairs.Test01Teacher)执行——>【通过】\n"] }, { "className": "Test01Teacher", "methodName": "test_add_teacher_info_06", "description": "教师角色不能为空", "spendTime": "0.268s", "status": "成功", "log": ["用例入参:{'name': 'py自动化教师20230105_14:04:48_6', 'number': '13395106754', 'departmentIds': ['1610879885310816257'], 'phone': '13395106754', 'classInfoId': '', 'idType': 'identity_card', 'idNumber': '140101200601011629', 'gender': 0, 'entryTime': 1663084800000, 'email': '63238730508@163.com', 'professionalIds': [], 'roleIds': [''], 'permissionScope': '1610879885310816257'}\n预期结果: {'msg': '教师角色不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '教师角色不能为空', 'code': 500, 'data': None}\ntest_add_teacher_info_06 (test_03_teaching_affairs.Test01Teacher)执行——>【通过】\n"] }, { "className": "Test01Teacher", "methodName": "test_add_teacher_info_07", "description": "教师性别为空,添加成功", "spendTime": "0.417s", "status": "成功", "log": ["用例入参:{'name': 'py自动化教师20230105_14:04:48_7', 'number': '13631257949', 'departmentIds': ['1610879885310816257'], 'phone': '13631257949', 'classInfoId': '', 'idType': 'identity_card', 'idNumber': '650101196712021281', 'gender': '', 'entryTime': 1663084800000, 'email': '14957179976@163.com', 'professionalIds': [], 'roleIds': ['968160378070540291'], 'permissionScope': '1610879885310816257'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_teacher_info_07 (test_03_teaching_affairs.Test01Teacher)执行——>【通过】\n"] }, { "className": "Test01Teacher", "methodName": "test_add_teacher_info_08", "description": "教师入职时间为空,添加成功", "spendTime": "0.513s", "status": "成功", "log": ["用例入参:{'name': 'py自动化教师20230105_14:04:49_8', 'number': '13680094458', 'departmentIds': ['1610879885310816257'], 'phone': '13680094458', 'classInfoId': '', 'idType': 'identity_card', 'idNumber': '610101200206271757', 'gender': 0, 'entryTime': '', 'email': '56005050200@163.com', 'professionalIds': [], 'roleIds': ['968160378070540291'], 'permissionScope': '1610879885310816257'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_teacher_info_08 (test_03_teaching_affairs.Test01Teacher)执行——>【通过】\n"] }, { "className": "Test01Teacher", "methodName": "test_add_teacher_info_09", "description": "教师邮箱为空,添加成功", "spendTime": "0.442s", "status": "成功", "log": ["用例入参:{'name': 'py自动化教师20230105_14:04:49_9', 'number': '17368916454', 'departmentIds': ['1610879885310816257'], 'phone': '17368916454', 'classInfoId': '', 'idType': 'identity_card', 'idNumber': '360101201410251334', 'gender': 0, 'entryTime': 1663084800000, 'email': '', 'professionalIds': [], 'roleIds': ['968160378070540291'], 'permissionScope': '1610879885310816257'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_teacher_info_09 (test_03_teaching_affairs.Test01Teacher)执行——>【通过】\n"] }, { "className": "Test01Teacher", "methodName": "test_add_teacher_info_10", "description": "教师工号为空,添加成功", "spendTime": "0.478s", "status": "成功", "log": ["用例入参:{'name': 'py自动化教师20230105_14:04:50_10', 'number': '', 'departmentIds': ['1610879885310816257'], 'phone': '13633620348', 'classInfoId': '', 'idType': 'identity_card', 'idNumber': '500101201807180622', 'gender': 0, 'entryTime': 1663084800000, 'email': '61900791651@163.com', 'professionalIds': [], 'roleIds': ['968160378070540291'], 'permissionScope': '1610879885310816257'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_teacher_info_10 (test_03_teaching_affairs.Test01Teacher)执行——>【通过】\n"] }, { "className": "Test01Teacher", "methodName": "test_add_teacher_info_11", "description": "新增教师", "spendTime": "0.44s", "status": "成功", "log": ["用例入参:{'name': 'py自动化教师20230105_14:04:50_11', 'number': '17389067024', 'departmentIds': ['1610879885310816257'], 'phone': '17389067024', 'classInfoId': '', 'idType': 'identity_card', 'idNumber': '45010120041012077X', 'gender': 0, 'entryTime': 1663084800000, 'email': '34425288554@163.com', 'professionalIds': [], 'roleIds': ['968160378070540291'], 'permissionScope': '1610879885310816257'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_teacher_info_11 (test_03_teaching_affairs.Test01Teacher)执行——>【通过】\n"] }, { "className": "Test02Class", "methodName": "test_add_class_info_01", "description": "新增班级", "spendTime": "0.351s", "status": "成功", "log": ["用例入参:{'name': 'py自动化班级20230105_14:04:53_1', 'educationalSystem': '3', 'startSchoolYear': 2022, 'professionalId': '1610879939836768258', 'teacherId': '1610879973961625602', 'departmentId': '1610879885310816257'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_class_info_01 (test_03_teaching_affairs.Test02Class)执行——>【通过】\n"] }, { "className": "Test02Class", "methodName": "test_add_class_info_02", "description": "班级名称未填写", "spendTime": "0.273s", "status": "成功", "log": ["用例入参:{'name': '', 'educationalSystem': '3', 'startSchoolYear': 2022, 'professionalId': '1610879939836768258', 'teacherId': '1610879973961625602', 'departmentId': '1610879885310816257'}\n预期结果: {'msg': '班级名称不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '班级名称不能为空', 'code': 500, 'data': None}\ntest_add_class_info_02 (test_03_teaching_affairs.Test02Class)执行——>【通过】\n"] }, { "className": "Test02Class", "methodName": "test_add_class_info_03", "description": "班级名称已存在", "spendTime": "0.293s", "status": "成功", "log": ["用例入参:{'name': '权限测试第一个班级-1-修改1', 'educationalSystem': '3', 'startSchoolYear': 2022, 'professionalId': '1607634271332593665', 'teacherId': '1607634326517051394', 'departmentId': '1607634257592053761'}\n预期结果: {'msg': '该班级已存在,请确认', 'code': 500, 'data': None}\n实际结果: {'msg': '该班级已存在,请确认', 'code': 500, 'data': None}\ntest_add_class_info_03 (test_03_teaching_affairs.Test02Class)执行——>【通过】\n"] }, { "className": "Test02Class", "methodName": "test_add_class_info_04", "description": "学制未填写", "spendTime": "0.254s", "status": "成功", "log": ["用例入参:{'name': 'py自动化班级20230105_14:04:54_4', 'educationalSystem': '', 'startSchoolYear': 2022, 'professionalId': '1610879939836768258', 'teacherId': '1610879973961625602', 'departmentId': '1610879885310816257'}\n预期结果: {'msg': '学制不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '学制不能为空', 'code': 500, 'data': None}\ntest_add_class_info_04 (test_03_teaching_affairs.Test02Class)执行——>【通过】\n"] }, { "className": "Test02Class", "methodName": "test_add_class_info_05", "description": "学制填写错误,最多为10年", "spendTime": "0.303s", "status": "成功", "log": ["用例入参:{'name': 'py自动化班级20230105_14:04:54_5', 'educationalSystem': '11', 'startSchoolYear': 2022, 'professionalId': '1610879939836768258', 'teacherId': '1610879973961625602', 'departmentId': '1610879885310816257'}\n预期结果: {'msg': '学制最多为10年', 'code': 500, 'data': None}\n实际结果: {'msg': '学制最多为10年', 'code': 500, 'data': None}\ntest_add_class_info_05 (test_03_teaching_affairs.Test02Class)执行——>【通过】\n"] }, { "className": "Test02Class", "methodName": "test_add_class_info_06", "description": "学制填写错误,最多为10年", "spendTime": "0.281s", "status": "成功", "log": ["用例入参:{'name': 'py自动化班级20230105_14:04:54_6', 'educationalSystem': '100', 'startSchoolYear': 2022, 'professionalId': '1610879939836768258', 'teacherId': '1610879973961625602', 'departmentId': '1610879885310816257'}\n预期结果: {'msg': '学制最多为10年', 'code': 500, 'data': None}\n实际结果: {'msg': '学制最多为10年', 'code': 500, 'data': None}\ntest_add_class_info_06 (test_03_teaching_affairs.Test02Class)执行——>【通过】\n"] }, { "className": "Test02Class", "methodName": "test_add_class_info_07", "description": "入学年份未填写", "spendTime": "0.266s", "status": "成功", "log": ["用例入参:{'name': 'py自动化班级20230105_14:04:55_7', 'educationalSystem': '3', 'startSchoolYear': '', 'professionalId': '1610879939836768258', 'teacherId': '1610879973961625602', 'departmentId': '1610879885310816257'}\n预期结果: {'msg': '入学年份不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '入学年份不能为空', 'code': 500, 'data': None}\ntest_add_class_info_07 (test_03_teaching_affairs.Test02Class)执行——>【通过】\n"] }, { "className": "Test02Class", "methodName": "test_add_class_info_08", "description": "专业未填写", "spendTime": "0.281s", "status": "成功", "log": ["用例入参:{'name': 'py自动化班级20230105_14:04:55_8', 'educationalSystem': '3', 'startSchoolYear': 2022, 'professionalId': '', 'teacherId': '1610879973961625602', 'departmentId': '1610879885310816257'}\n预期结果: {'msg': '所属专业不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '所属专业不能为空', 'code': 500, 'data': None}\ntest_add_class_info_08 (test_03_teaching_affairs.Test02Class)执行——>【通过】\n"] }, { "className": "Test02Class", "methodName": "test_add_class_info_09", "description": "专业填写错误", "spendTime": "0.297s", "status": "成功", "log": ["用例入参:{'name': 'py自动化班级20230105_14:04:55_9', 'educationalSystem': '3', 'startSchoolYear': 2022, 'professionalId': '1607127381431545857', 'teacherId': '1610879973961625602', 'departmentId': '1610879885310816257'}\n预期结果: {'msg': '专业不存在', 'code': 500, 'data': None}\n实际结果: {'msg': '专业不存在', 'code': 500, 'data': None}\ntest_add_class_info_09 (test_03_teaching_affairs.Test02Class)执行——>【通过】\n"] }, { "className": "Test02Class", "methodName": "test_add_class_info_10", "description": "院系不能为空", "spendTime": "0.273s", "status": "成功", "log": ["用例入参:{'name': 'py自动化班级20230105_14:04:56_10', 'educationalSystem': '3', 'startSchoolYear': 2022, 'professionalId': '1610879939836768258', 'teacherId': '1610879973961625602', 'departmentId': ''}\n预期结果: {'msg': '所属院系不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '所属院系不能为空', 'code': 500, 'data': None}\ntest_add_class_info_10 (test_03_teaching_affairs.Test02Class)执行——>【通过】\n"] }, { "className": "Test02Class", "methodName": "test_add_class_info_11", "description": "院系填写错误", "spendTime": "0.269s", "status": "成功", "log": ["用例入参:{'name': 'py自动化班级20230105_14:04:56_11', 'educationalSystem': '3', 'startSchoolYear': 2022, 'professionalId': '1610879939836768258', 'teacherId': '1610879973961625602', 'departmentId': '1607560129617769474'}\n预期结果: {'msg': '院系不存在', 'code': 500, 'data': None}\n实际结果: {'msg': '院系不存在', 'code': 500, 'data': None}\ntest_add_class_info_11 (test_03_teaching_affairs.Test02Class)执行——>【通过】\n"] }, { "className": "Test02Class", "methodName": "test_add_class_info_12", "description": "院系下没有该专业", "spendTime": "0.266s", "status": "成功", "log": ["用例入参:{'name': 'py自动化班级20230105_14:04:56_12', 'educationalSystem': '3', 'startSchoolYear': 2022, 'professionalId': '1522136888155148289', 'teacherId': '1610879973961625602', 'departmentId': '1519960538489131009'}\n预期结果: {'msg': '专业不存在', 'code': 500, 'data': None}\n实际结果: {'msg': '专业不存在', 'code': 500, 'data': None}\ntest_add_class_info_12 (test_03_teaching_affairs.Test02Class)执行——>【通过】\n"] }, { "className": "Test02Class", "methodName": "test_add_class_info_13", "description": "教师未填写,添加成功", "spendTime": "0.348s", "status": "成功", "log": ["用例入参:{'name': 'py自动化班级20230105_14:04:56_13', 'educationalSystem': '3', 'startSchoolYear': 2022, 'professionalId': '1610879939836768258', 'teacherId': '', 'departmentId': '1610879885310816257'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_class_info_13 (test_03_teaching_affairs.Test02Class)执行——>【通过】\n"] }, { "className": "Test02Class", "methodName": "test_add_class_info_14", "description": "教师填写错误", "spendTime": "0.314s", "status": "成功", "log": ["用例入参:{'name': 'py自动化班级20230105_14:04:57_14', 'educationalSystem': '3', 'startSchoolYear': 2022, 'professionalId': '1610879939836768258', 'teacherId': '1607612806826909697', 'departmentId': '1610879885310816257'}\n预期结果: {'msg': '教师不存在', 'code': 500, 'data': None}\n实际结果: {'msg': '教师不存在', 'code': 500, 'data': None}\ntest_add_class_info_14 (test_03_teaching_affairs.Test02Class)执行——>【通过】\n"] }, { "className": "Test02Class", "methodName": "test_add_class_info_15", "description": "新增班级", "spendTime": "0.307s", "status": "成功", "log": ["用例入参:{'name': 'py自动化班级20230105_14:04:57_15', 'educationalSystem': '3', 'startSchoolYear': 2022, 'professionalId': '1610879939836768258', 'teacherId': '1610879973961625602', 'departmentId': '1610879885310816257'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_class_info_15 (test_03_teaching_affairs.Test02Class)执行——>【通过】\n"] }, { "className": "Test03Course", "methodName": "test_add_course_info_01", "description": "新增课程", "spendTime": "0.464s", "status": "成功", "log": ["用例入参:{'name': 'py自动化课程20230105_14:05:00_1', 'practiceType': 'know', 'departmentId': '1610879885310816257', 'credit': 3, 'property': 'elective', 'creditHour': '5', 'termIds': ['1610879952247713793'], 'professionalIds': ['1610879939836768258'], 'yearId': '49'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_course_info_01 (test_03_teaching_affairs.Test03Course)执行——>【通过】\n"] }, { "className": "Test03Course", "methodName": "test_add_course_info_02", "description": "课程名称不能为空", "spendTime": "0.536s", "status": "成功", "log": ["用例入参:{'name': '', 'practiceType': 'know', 'departmentId': '1610879885310816257', 'credit': 3, 'property': 'elective', 'creditHour': '5', 'termIds': ['1610879952247713793'], 'professionalIds': ['1610879939836768258'], 'yearId': '50'}\n预期结果: {'msg': '课程名称不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '课程名称不能为空', 'code': 500, 'data': None}\ntest_add_course_info_02 (test_03_teaching_affairs.Test03Course)执行——>【通过】\n"] }, { "className": "Test03Course", "methodName": "test_add_course_info_03", "description": "课程名称不能超过30字", "spendTime": "0.451s", "status": "成功", "log": ["用例入参:{'name': '1234567890123456789012345678901', 'practiceType': 'know', 'departmentId': '1610879885310816257', 'credit': 3, 'property': 'elective', 'creditHour': '5', 'termIds': ['1610879952247713793'], 'professionalIds': ['1610879939836768258'], 'yearId': '51'}\n预期结果: {'msg': '课程名称不能超过30字', 'code': 500, 'data': None}\n实际结果: {'msg': '课程名称不能超过30字', 'code': 500, 'data': None}\ntest_add_course_info_03 (test_03_teaching_affairs.Test03Course)执行——>【通过】\n"] }, { "className": "Test03Course", "methodName": "test_add_course_info_04", "description": "实践类型不能为空", "spendTime": "0.3s", "status": "成功", "log": ["用例入参:{'name': 'py自动化课程20230105_14:05:01_4', 'practiceType': '', 'departmentId': '1610879885310816257', 'credit': 3, 'property': 'elective', 'creditHour': '5', 'termIds': ['1610879952247713793'], 'professionalIds': ['1610879939836768258'], 'yearId': '52'}\n预期结果: {'msg': '实践类型不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '实践类型不能为空', 'code': 500, 'data': None}\ntest_add_course_info_04 (test_03_teaching_affairs.Test03Course)执行——>【通过】\n"] }, { "className": "Test03Course", "methodName": "test_add_course_info_05", "description": "院系不能为空", "spendTime": "0.278s", "status": "成功", "log": ["用例入参:{'name': 'py自动化课程20230105_14:05:01_5', 'practiceType': 'know', 'departmentId': '', 'credit': 3, 'property': 'elective', 'creditHour': '5', 'termIds': ['1610879952247713793'], 'professionalIds': ['1610879939836768258'], 'yearId': '53'}\n预期结果: {'msg': '院系不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '院系不能为空', 'code': 500, 'data': None}\ntest_add_course_info_05 (test_03_teaching_affairs.Test03Course)执行——>【通过】\n"] }, { "className": "Test03Course", "methodName": "test_add_course_info_06", "description": "院系不能为空", "spendTime": "0.296s", "status": "成功", "log": ["用例入参:{'name': 'py自动化课程20230105_14:05:02_6', 'practiceType': 'know', 'departmentId': '1519960228489131009', 'credit': 3, 'property': 'elective', 'creditHour': '5', 'termIds': ['1610879952247713793'], 'professionalIds': ['1610879939836768258'], 'yearId': '53'}\n预期结果: {'msg': '院系不存在', 'code': 500, 'data': None}\n实际结果: {'msg': '院系不存在', 'code': 500, 'data': None}\ntest_add_course_info_06 (test_03_teaching_affairs.Test03Course)执行——>【通过】\n"] }, { "className": "Test03Course", "methodName": "test_add_course_info_07", "description": "学分不能为空", "spendTime": "0.258s", "status": "成功", "log": ["用例入参:{'name': 'py自动化课程20230105_14:05:02_7', 'practiceType': 'know', 'departmentId': '1610879885310816257', 'credit': '', 'property': 'elective', 'creditHour': '5', 'termIds': ['1610879952247713793'], 'professionalIds': ['1610879939836768258'], 'yearId': '54'}\n预期结果: {'msg': '学分不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '学分不能为空', 'code': 500, 'data': None}\ntest_add_course_info_07 (test_03_teaching_affairs.Test03Course)执行——>【通过】\n"] }, { "className": "Test03Course", "methodName": "test_add_course_info_08", "description": "修读性质不能为空", "spendTime": "0.251s", "status": "成功", "log": ["用例入参:{'name': 'py自动化课程20230105_14:05:02_8', 'practiceType': 'know', 'departmentId': '1610879885310816257', 'credit': 3, 'property': '', 'creditHour': '5', 'termIds': ['1610879952247713793'], 'professionalIds': ['1610879939836768258'], 'yearId': '55'}\n预期结果: {'msg': '修读性质不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '修读性质不能为空', 'code': 500, 'data': None}\ntest_add_course_info_08 (test_03_teaching_affairs.Test03Course)执行——>【通过】\n"] }, { "className": "Test03Course", "methodName": "test_add_course_info_09", "description": "修读性质填写错误", "spendTime": "0.26s", "status": "成功", "log": ["用例入参:{'name': 'py自动化课程20230105_14:05:03_9', 'practiceType': 'know', 'departmentId': '1610879885310816257', 'credit': 3, 'property': 'iiielectiveiiiii', 'creditHour': '5', 'termIds': ['1610879952247713793'], 'professionalIds': ['1610879939836768258'], 'yearId': '56'}\n预期结果: {'msg': '修读性质填写错误', 'code': 500, 'data': None}\n实际结果: {'msg': '修读性质填写错误', 'code': 500, 'data': None}\ntest_add_course_info_09 (test_03_teaching_affairs.Test03Course)执行——>【通过】\n"] }, { "className": "Test03Course", "methodName": "test_add_course_info_10", "description": "学时(周数)不能为空", "spendTime": "0.245s", "status": "成功", "log": ["用例入参:{'name': 'py自动化课程20230105_14:05:03_10', 'practiceType': 'know', 'departmentId': '1610879885310816257', 'credit': 3, 'property': 'elective', 'creditHour': '', 'termIds': ['1610879952247713793'], 'professionalIds': ['1610879939836768258'], 'yearId': '57'}\n预期结果: {'msg': '学时不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '学时不能为空', 'code': 500, 'data': None}\ntest_add_course_info_10 (test_03_teaching_affairs.Test03Course)执行——>【通过】\n"] }, { "className": "Test03Course", "methodName": "test_add_course_info_11", "description": "学期不能为空", "spendTime": "0.292s", "status": "成功", "log": ["用例入参:{'name': 'py自动化课程20230105_14:05:03_11', 'practiceType': 'know', 'departmentId': '1610879885310816257', 'credit': 3, 'property': 'elective', 'creditHour': '5', 'termIds': [''], 'professionalIds': ['1610879939836768258'], 'yearId': '58'}\n预期结果: {'msg': '学期不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '学期不能为空', 'code': 500, 'data': None}\ntest_add_course_info_11 (test_03_teaching_affairs.Test03Course)执行——>【通过】\n"] }, { "className": "Test03Course", "methodName": "test_add_course_info_12", "description": "专业不能为空", "spendTime": "0.295s", "status": "成功", "log": ["用例入参:{'name': 'py自动化课程20230105_14:05:03_12', 'practiceType': 'know', 'departmentId': '1610879885310816257', 'credit': 3, 'property': 'elective', 'creditHour': '5', 'termIds': ['1610879952247713793'], 'professionalIds': [''], 'yearId': '59'}\n预期结果: {'msg': '部分专业信息不存在', 'code': 500, 'data': None}\n实际结果: {'msg': '部分专业信息不存在', 'code': 500, 'data': None}\ntest_add_course_info_12 (test_03_teaching_affairs.Test03Course)执行——>【通过】\n"] }, { "className": "Test03Course", "methodName": "test_add_course_info_13", "description": "专业填写错误", "spendTime": "0.272s", "status": "成功", "log": ["用例入参:{'name': 'py自动化课程20230105_14:05:04_13', 'practiceType': 'know', 'departmentId': '1610879885310816257', 'credit': 3, 'property': 'elective', 'creditHour': '5', 'termIds': ['1610879952247713793'], 'professionalIds': ['1522136228155148289'], 'yearId': '60'}\n预期结果: {'msg': '部分专业信息不存在', 'code': 500, 'data': None}\n实际结果: {'msg': '部分专业信息不存在', 'code': 500, 'data': None}\ntest_add_course_info_13 (test_03_teaching_affairs.Test03Course)执行——>【通过】\n"] }, { "className": "Test03Course", "methodName": "test_add_course_info_14", "description": "新增课程", "spendTime": "0.327s", "status": "成功", "log": ["用例入参:{'name': 'py自动化课程20230105_14:05:04_14', 'practiceType': 'know', 'departmentId': '1610879885310816257', 'credit': 3, 'property': 'elective', 'creditHour': '5', 'termIds': ['1610879952247713793'], 'professionalIds': ['1610879939836768258'], 'yearId': '49'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_course_info_14 (test_03_teaching_affairs.Test03Course)执行——>【通过】\n"] }, { "className": "Test04Student", "methodName": "test_add_student_info_01", "description": "新增学生成功", "spendTime": "0.501s", "status": "成功", "log": ["用例入参:{'name': 'py自动化学生20230105_14:05:07_1', 'number': '20230105_14:05:07_1', 'phone': '17355506003', 'startSchoolYear': 2022, 'classInfoId': '1610880002843602946', 'idType': 'identity_card', 'idNumber': '410101196908201167', 'gender': 0, 'schoolCensusStatus': 'not_duty', 'trainingOrientation': 'secondary', 'other': '17347105651', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_student_info_01 (test_03_teaching_affairs.Test04Student)执行——>【通过】\n"] }, { "className": "Test04Student", "methodName": "test_add_student_info_02", "description": "学生姓名未填写失败", "spendTime": "0.265s", "status": "成功", "log": ["用例入参:{'name': '', 'number': '20230105_14:05:08_2', 'phone': '13628808886', 'startSchoolYear': 2022, 'classInfoId': '1610880002843602946', 'idType': 'identity_card', 'idNumber': '120101195102210407', 'gender': 0, 'schoolCensusStatus': 'not_duty', 'trainingOrientation': 'secondary', 'other': '17318550041', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258'}\n预期结果: {'msg': '姓名不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '姓名不能为空', 'code': 500, 'data': None}\ntest_add_student_info_02 (test_03_teaching_affairs.Test04Student)执行——>【通过】\n"] }, { "className": "Test04Student", "methodName": "test_add_student_info_03", "description": "学生学号未填写失败", "spendTime": "0.41s", "status": "成功", "log": ["用例入参:{'name': 'py自动化学生20230105_14:05:08_3', 'number': '', 'phone': '13335062863', 'startSchoolYear': 2022, 'classInfoId': '1610880002843602946', 'idType': 'identity_card', 'idNumber': '420101199702100948', 'gender': 0, 'schoolCensusStatus': 'not_duty', 'trainingOrientation': 'secondary', 'other': '17339023351', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258'}\n预期结果: {'msg': '学生学号不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '学生学号不能为空', 'code': 500, 'data': None}\ntest_add_student_info_03 (test_03_teaching_affairs.Test04Student)执行——>【通过】\n"] }, { "className": "Test04Student", "methodName": "test_add_student_info_04", "description": "手机号未填写,添加成功", "spendTime": "0.314s", "status": "成功", "log": ["用例入参:{'name': 'py自动化学生20230105_14:05:08_4', 'number': '20230105_14:05:08_4', 'phone': '', 'startSchoolYear': 2022, 'classInfoId': '1610880002843602946', 'idType': 'identity_card', 'idNumber': '510101201804030276', 'gender': 0, 'schoolCensusStatus': 'not_duty', 'trainingOrientation': 'secondary', 'other': '17307019489', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_student_info_04 (test_03_teaching_affairs.Test04Student)执行——>【通过】\n"] }, { "className": "Test04Student", "methodName": "test_add_student_info_05", "description": "入学年份未填写,添加失败", "spendTime": "0.25s", "status": "成功", "log": ["用例入参:{'name': 'py自动化学生20230105_14:05:09_5', 'number': '20230105_14:05:09_5', 'phone': '15531342976', 'startSchoolYear': '', 'classInfoId': '1610880002843602946', 'idType': 'identity_card', 'idNumber': '340101194112021534', 'gender': 0, 'schoolCensusStatus': 'not_duty', 'trainingOrientation': 'secondary', 'other': '17318172834', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258'}\n预期结果: {'msg': '入学年份不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '入学年份不能为空', 'code': 500, 'data': None}\ntest_add_student_info_05 (test_03_teaching_affairs.Test04Student)执行——>【通过】\n"] }, { "className": "Test04Student", "methodName": "test_add_student_info_06", "description": "班级未填写,添加失败", "spendTime": "0.266s", "status": "成功", "log": ["用例入参:{'name': 'py自动化学生20230105_14:05:09_6', 'number': '20230105_14:05:09_6', 'phone': '17373764305', 'startSchoolYear': 2022, 'classInfoId': '', 'idType': 'identity_card', 'idNumber': '620101197105050477', 'gender': 0, 'schoolCensusStatus': 'not_duty', 'trainingOrientation': 'secondary', 'other': '15528100512', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258'}\n预期结果: {'msg': '班级不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '班级不能为空', 'code': 500, 'data': None}\ntest_add_student_info_06 (test_03_teaching_affairs.Test04Student)执行——>【通过】\n"] }, { "className": "Test04Student", "methodName": "test_add_student_info_07", "description": "证件类型和证件号码都没填写,添加成功", "spendTime": "0.301s", "status": "成功", "log": ["用例入参:{'name': 'py自动化学生20230105_14:05:09_7', 'number': '20230105_14:05:09_7', 'phone': '13646927022', 'startSchoolYear': 2022, 'classInfoId': '1610880002843602946', 'idType': '', 'idNumber': '', 'gender': 0, 'schoolCensusStatus': 'not_duty', 'trainingOrientation': 'secondary', 'other': '13653664209', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_student_info_07 (test_03_teaching_affairs.Test04Student)执行——>【通过】\n"] }, { "className": "Test04Student", "methodName": "test_add_student_info_08", "description": "证件类型未填,证件号码填写,添加失败", "spendTime": "0.262s", "status": "成功", "log": ["用例入参:{'name': 'py自动化学生20230105_14:05:10_8', 'number': '20230105_14:05:10_8', 'phone': '15570477479', 'startSchoolYear': 2022, 'classInfoId': '1610880002843602946', 'idType': '', 'idNumber': '420101197201051085', 'gender': 0, 'schoolCensusStatus': 'not_duty', 'trainingOrientation': 'secondary', 'other': '15592313942', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258'}\n预期结果: {'msg': '证件类型未填,证件号码填写', 'code': 500, 'data': None}\n实际结果: {'msg': '证件类型未填,证件号码填写', 'code': 500, 'data': None}\ntest_add_student_info_08 (test_03_teaching_affairs.Test04Student)执行——>【通过】\n"] }, { "className": "Test04Student", "methodName": "test_add_student_info_09", "description": "证件类型填写,证件号码未填写,添加失败", "spendTime": "0.257s", "status": "成功", "log": ["用例入参:{'name': 'py自动化学生20230105_14:05:10_9', 'number': '20230105_14:05:10_9', 'phone': '13324149013', 'startSchoolYear': 2022, 'classInfoId': '1610880002843602946', 'idType': 'identity_card', 'idNumber': '', 'gender': 0, 'schoolCensusStatus': 'not_duty', 'trainingOrientation': 'secondary', 'other': '13666056973', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258'}\n预期结果: {'msg': '证件类型填写,证件号码未填写', 'code': 500, 'data': None}\n实际结果: {'msg': '证件类型填写,证件号码未填写', 'code': 500, 'data': None}\ntest_add_student_info_09 (test_03_teaching_affairs.Test04Student)执行——>【通过】\n"] }, { "className": "Test04Student", "methodName": "test_add_student_info_10", "description": "性别未填写,添加成功", "spendTime": "0.289s", "status": "成功", "log": ["用例入参:{'name': 'py自动化学生20230105_14:05:10_10', 'number': '20230105_14:05:10_10', 'phone': '17393268687', 'startSchoolYear': 2022, 'classInfoId': '1610880002843602946', 'idType': 'identity_card', 'idNumber': '450101200508221392', 'gender': '', 'schoolCensusStatus': 'not_duty', 'trainingOrientation': 'secondary', 'other': '15559489181', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_student_info_10 (test_03_teaching_affairs.Test04Student)执行——>【通过】\n"] }, { "className": "Test04Student", "methodName": "test_add_student_info_11", "description": "学籍状态未填写,添加成功", "spendTime": "0.322s", "status": "成功", "log": ["用例入参:{'name': 'py自动化学生20230105_14:05:10_11', 'number': '20230105_14:05:10_11', 'phone': '17394816497', 'startSchoolYear': 2022, 'classInfoId': '1610880002843602946', 'idType': 'identity_card', 'idNumber': '430101199905120473', 'gender': 0, 'schoolCensusStatus': '', 'trainingOrientation': 'secondary', 'other': '17364386206', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_student_info_11 (test_03_teaching_affairs.Test04Student)执行——>【通过】\n"] }, { "className": "Test04Student", "methodName": "test_add_student_info_12", "description": "培养方向未填写,添加成功", "spendTime": "0.288s", "status": "成功", "log": ["用例入参:{'name': 'py自动化学生20230105_14:05:11_12', 'number': '20230105_14:05:11_12', 'phone': '15548734994', 'startSchoolYear': 2022, 'classInfoId': '1610880002843602946', 'idType': 'identity_card', 'idNumber': '510101196603080791', 'gender': 0, 'schoolCensusStatus': 'not_duty', 'trainingOrientation': '', 'other': '15540846818', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_student_info_12 (test_03_teaching_affairs.Test04Student)执行——>【通过】\n"] }, { "className": "Test04Student", "methodName": "test_add_student_info_13", "description": "其他-备注未填写,添加成功", "spendTime": "0.319s", "status": "成功", "log": ["用例入参:{'name': 'py自动化学生20230105_14:05:11_13', 'number': '20230105_14:05:11_13', 'phone': '13341935184', 'startSchoolYear': 2022, 'classInfoId': '1610880002843602946', 'idType': 'identity_card', 'idNumber': '620101196408111711', 'gender': 0, 'schoolCensusStatus': 'not_duty', 'trainingOrientation': 'secondary', 'other': '', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_student_info_13 (test_03_teaching_affairs.Test04Student)执行——>【通过】\n"] }, { "className": "Test04Student", "methodName": "test_add_student_info_14", "description": "院系ID未填写,添加失败", "spendTime": "0.268s", "status": "成功", "log": ["用例入参:{'name': 'py自动化学生20230105_14:05:11_14', 'number': '20230105_14:05:11_14', 'phone': '13687952773', 'startSchoolYear': 2022, 'classInfoId': '1610880002843602946', 'idType': 'identity_card', 'idNumber': '530101196012061701', 'gender': 0, 'schoolCensusStatus': 'not_duty', 'trainingOrientation': 'secondary', 'other': '17373318916', 'departmentId': '', 'professionalId': '1610879939836768258'}\n预期结果: {'msg': '院系不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '院系不能为空', 'code': 500, 'data': None}\ntest_add_student_info_14 (test_03_teaching_affairs.Test04Student)执行——>【通过】\n"] }, { "className": "Test04Student", "methodName": "test_add_student_info_15", "description": "专业ID未填写添加失败", "spendTime": "0.268s", "status": "成功", "log": ["用例入参:{'name': 'py自动化学生20230105_14:05:12_15', 'number': '20230105_14:05:12_15', 'phone': '13669802379', 'startSchoolYear': 2022, 'classInfoId': '1610880002843602946', 'idType': 'identity_card', 'idNumber': '450101195106121002', 'gender': 0, 'schoolCensusStatus': 'not_duty', 'trainingOrientation': 'secondary', 'other': '15555421451', 'departmentId': '1610879885310816257', 'professionalId': ''}\n预期结果: {'msg': '专业不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '专业不能为空', 'code': 500, 'data': None}\ntest_add_student_info_15 (test_03_teaching_affairs.Test04Student)执行——>【通过】\n"] }, { "className": "Test04Student", "methodName": "test_add_student_info_16", "description": "新增学生成功", "spendTime": "0.35s", "status": "成功", "log": ["用例入参:{'name': 'py自动化学生20230105_14:05:12_16', 'number': '20230105_14:05:12_16', 'phone': '13698463108', 'startSchoolYear': 2022, 'classInfoId': '1610880002843602946', 'idType': 'identity_card', 'idNumber': '350101197607230333', 'gender': 0, 'schoolCensusStatus': 'not_duty', 'trainingOrientation': 'secondary', 'other': '13608424835', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258'}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_student_info_16 (test_03_teaching_affairs.Test04Student)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_01", "description": "新增计划成功", "spendTime": "0.604s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:18_1', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_plan_01 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_02", "description": "计划名称不能为空", "spendTime": "0.308s", "status": "成功", "log": ["用例入参:{'name': '', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '#purpose#', 'other': '#other#', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'markWay': 'hierarchy', 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': '名称不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '名称不能为空', 'code': 500, 'data': None}\ntest_add_plan_02 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_03", "description": "计划名称不能大于30位", "spendTime": "0.302s", "status": "成功", "log": ["用例入参:{'name': '123456789012345678901234567890111', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': '名称不能超过30', 'code': 500, 'data': None}\n实际结果: {'msg': '名称不能超过30', 'code': 500, 'data': None}\ntest_add_plan_03 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_04", "description": "课程不能为空", "spendTime": "0.321s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:19_4', 'courseId': '', 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': '课程不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '课程不能为空', 'code': 500, 'data': None}\ntest_add_plan_04 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_05", "description": "课程不存在", "spendTime": "0.41s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:19_5', 'courseId': '1604221420761000', 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': '课程不存在', 'code': 500, 'data': None}\n实际结果: {'msg': '课程不存在', 'code': 500, 'data': None}\ntest_add_plan_05 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_06", "description": "班级不能为空", "spendTime": "0.334s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:20_6', 'courseId': 1610880031683637249, 'classInfoIds': [''], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': '班级不匹配', 'code': 500, 'data': None}\n实际结果: {'msg': '班级不匹配', 'code': 500, 'data': None}\ntest_add_plan_06 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_07", "description": "班级不存在", "spendTime": "0.385s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:20_7', 'courseId': 1610880031683637249, 'classInfoIds': ['1608192098381826'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': '班级不匹配', 'code': 500, 'data': None}\n实际结果: {'msg': '班级不匹配', 'code': 500, 'data': None}\ntest_add_plan_07 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_08", "description": "计划开始时间不能为空", "spendTime": "0.306s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:20_8', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': '', 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': '开始时间不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '开始时间不能为空', 'code': 500, 'data': None}\ntest_add_plan_08 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_09", "description": "计划结束时间不能为空", "spendTime": "0.307s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:21_9', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': '', 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': '结束时间不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '结束时间不能为空', 'code': 500, 'data': None}\ntest_add_plan_09 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_10", "description": "负责老师为空,添加成功", "spendTime": "0.344s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:21_10', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': [], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_plan_10 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_11", "description": "教师不存在,添加失败", "spendTime": "0.36s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:21_11', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['16084041590535938'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': '教师不匹配', 'code': 500, 'data': None}\n实际结果: {'msg': '教师不匹配', 'code': 500, 'data': None}\ntest_add_plan_11 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_12", "description": "实习目的为空,添加成功", "spendTime": "0.34s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:22_12', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_plan_12 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_13", "description": "实习目的不能超过100位", "spendTime": "0.291s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:22_13', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': '实习目的不能超过100', 'code': 500, 'data': None}\n实际结果: {'msg': '实习目的不能超过100', 'code': 500, 'data': None}\ntest_add_plan_13 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_14", "description": "其他(备注)未填写,添加成功", "spendTime": "0.365s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:22_14', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_plan_14 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_15", "description": "其他(备注)长度不能超过200位", "spendTime": "0.276s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:23_15', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789011', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': '其他(备注)长度不能超过200位', 'code': 500, 'data': None}\n实际结果: {'msg': '其他(备注)长度不能超过200位', 'code': 500, 'data': None}\ntest_add_plan_15 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_16", "description": "实习形式不能为空", "spendTime": "0.346s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:23_16', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': [''], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': '实习形式不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '实习形式不能为空', 'code': 500, 'data': None}\ntest_add_plan_16 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_17", "description": "实习形式为集中,添加成功--集中", "spendTime": "0.357s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:23_17', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_plan_17 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_18", "description": "实习形式为自主,添加成功--自主", "spendTime": "0.412s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:24_18', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_plan_18 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_19", "description": "实习报告提交开始时间不能为空", "spendTime": "0.279s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:24_19', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': '', 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': '报告提交开始日期不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '报告提交开始日期不能为空', 'code': 500, 'data': None}\ntest_add_plan_19 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_20", "description": "实习报告提交结束时间不能为空", "spendTime": "0.301s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:24_20', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': '', 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': '报告提交结束日期不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '报告提交结束日期不能为空', 'code': 500, 'data': None}\ntest_add_plan_20 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_21", "description": "报告模块路径为空,添加成功", "spendTime": "0.395s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:25_21', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_plan_21 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_22", "description": "实习内容为空,添加成功", "spendTime": "0.357s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:25_22', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_plan_22 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_23", "description": "实习内容长度不能大于500位", "spendTime": "0.308s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:25_23', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '2345678901234567890123456789012345678901234567890123456789012345678901234567890234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789023456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890112345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901111', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': '实习内容长度不能超过500位', 'code': 500, 'data': None}\n实际结果: {'msg': '实习内容长度不能超过500位', 'code': 500, 'data': None}\ntest_add_plan_23 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_24", "description": "院系不能为空", "spendTime": "0.285s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:26_24', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': '院系不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '院系不能为空', 'code': 500, 'data': None}\ntest_add_plan_24 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_25", "description": "院系填写错误", "spendTime": "0.357s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:26_25', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1608511347396610', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': '院系班级不匹配', 'code': 500, 'data': None}\n实际结果: {'msg': '院系班级不匹配', 'code': 500, 'data': None}\ntest_add_plan_25 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_26", "description": "专业不能为空", "spendTime": "0.274s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:26_26', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '', 'termId': 1610879952247713793}\n预期结果: {'msg': '专业不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '专业不能为空', 'code': 500, 'data': None}\ntest_add_plan_26 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_27", "description": "专业填写错误", "spendTime": "0.355s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:27_27', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1608402858811393', 'termId': 1610879952247713793}\n预期结果: {'msg': '专业班级不匹配', 'code': 500, 'data': None}\n实际结果: {'msg': '专业班级不匹配', 'code': 500, 'data': None}\ntest_add_plan_27 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_28", "description": "学期不能为空", "spendTime": "0.305s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:27_28', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': ''}\n预期结果: {'msg': '学期不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '学期不能为空', 'code': 500, 'data': None}\ntest_add_plan_28 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_29", "description": "学期填写错误", "spendTime": "0.298s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:27_29', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': '16404135152316418'}\n预期结果: {'msg': '学期填写错误', 'code': 500, 'data': None}\n实际结果: {'msg': '学期填写错误', 'code': 500, 'data': None}\ntest_add_plan_29 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test01addInternshipPlan", "methodName": "test_add_plan_30", "description": "新增计划成功", "spendTime": "0.403s", "status": "成功", "log": ["用例入参:{'name': 'py自动化计划20230105_14:05:28_30', 'courseId': 1610880031683637249, 'classInfoIds': ['1610880002843602946'], 'startTime': 1627747200000, 'endTime': 1735453543000, 'teacherIds': ['1610879973961625602'], 'purpose': '实习目的py自动化', 'other': '其他(备注)', 'practiceFormList': ['centralize', 'oneself'], 'reportSubmitStartTime': 1630512000000, 'reportSubmitEndTime': 1727884800000, 'reportTemplate': '', 'content': '实习内容#content#', 'departmentId': '1610879885310816257', 'professionalId': '1610879939836768258', 'termId': 1610879952247713793}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_plan_30 (test_04_Internship_preparation.Test01addInternshipPlan)执行——>【通过】\n"] }, { "className": "Test02publishInternshipPlan", "methodName": "test_publish_plan_1", "description": "发布计划", "spendTime": "4.55s", "status": "错误", "log": ['Traceback (most recent call last):\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n', ' File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n', ' File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 208, in test_publish_plan\n self.add_plan.write_excel(row=case["id"] + 1, column=9, value=case["data"])\n', "AttributeError: 'Test02publishInternshipPlan' object has no attribute 'add_plan'\n", '用例入参:{\'publishStatus\': \'published\', \'ids\': [1610880131042504706]}\n预期结果: {\'msg\': \'success\', \'code\': 200, \'data\': True}\n实际结果: {\'msg\': \'success\', \'code\': 200, \'data\': True}\ntest_publish_plan_1 (test_04_Internship_preparation.Test02publishInternshipPlan)执行——>【错误Error】\nTraceback (most recent call last):\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 208, in test_publish_plan\n self.add_plan.write_excel(row=case["id"] + 1, column=9, value=case["data"])\nAttributeError: \'Test02publishInternshipPlan\' object has no attribute \'add_plan\'\n================test_publish_plan_1 (test_04_Internship_preparation.Test02publishInternshipPlan)重运行第1次================\n用例入参:{\'publishStatus\': \'published\', \'ids\': [1610880131042504706]}\n预期结果: {\'msg\': \'success\', \'code\': 200, \'data\': True}\n实际结果: {\'msg\': \'success\', \'code\': 200, \'data\': True}\ntest_publish_plan_1 (test_04_Internship_preparation.Test02publishInternshipPlan)执行——>【错误Error】\nTraceback (most recent call last):\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 208, in test_publish_plan\n self.add_plan.write_excel(row=case["id"] + 1, column=9, value=case["data"])\nAttributeError: \'Test02publishInternshipPlan\' object has no attribute \'add_plan\'\n================test_publish_plan_1 (test_04_Internship_preparation.Test02publishInternshipPlan)重运行第2次================\n用例入参:{\'publishStatus\': \'published\', \'ids\': [1610880131042504706]}\n预期结果: {\'msg\': \'success\', \'code\': 200, \'data\': True}\n实际结果: {\'msg\': \'success\', \'code\': 200, \'data\': True}\ntest_publish_plan_1 (test_04_Internship_preparation.Test02publishInternshipPlan)执行——>【错误Error】\nTraceback (most recent call last):\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 208, in test_publish_plan\n self.add_plan.write_excel(row=case["id"] + 1, column=9, value=case["data"])\nAttributeError: \'Test02publishInternshipPlan\' object has no attribute \'add_plan\'\n================test_publish_plan_1 (test_04_Internship_preparation.Test02publishInternshipPlan)重运行第3次================\n用例入参:{\'publishStatus\': \'published\', \'ids\': [1610880131042504706]}\n预期结果: {\'msg\': \'success\', \'code\': 200, \'data\': True}\n实际结果: {\'msg\': \'success\', \'code\': 200, \'data\': True}\ntest_publish_plan_1 (test_04_Internship_preparation.Test02publishInternshipPlan)执行——>【错误Error】\n'] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_01", "description": "新增项目成功--自主-(需要报名审核-允许自行填报企业信息)", "spendTime": "0.506s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:35_1', 'planId': '1610880131042504706', 'practiceForm': 'oneself', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': 1662021598000, 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': 1610879973961625602}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_project_01 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_02", "description": "新增项目成功--自主-(需要报名审核-不允许自行填报企业信息)", "spendTime": "0.469s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:36_2', 'planId': '1610880131042504706', 'practiceForm': 'oneself', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': 1662021598000, 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'no', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': 1610879973961625602}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_project_02 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_03", "description": "新增项目成功--自主-(不需要报名审核-允许自行填报企业信息)", "spendTime": "0.415s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:36_3', 'planId': '1610880131042504706', 'practiceForm': 'oneself', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': 1662021598000, 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'no', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': 1610879973961625602}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_project_03 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_04", "description": "新增项目成功--自主-(不需要报名审核-不允许自行填报企业信息)", "spendTime": "0.448s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:37_4', 'planId': '1610880131042504706', 'practiceForm': 'oneself', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': 1662021598000, 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'no', 'oneselfFillCompanyInfo': 'no', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': 1610879973961625602}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_project_04 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_05", "description": "项目名称不能为空", "spendTime": "0.312s", "status": "成功", "log": ["用例入参:{'name': '', 'planId': '1610880131042504706', 'practiceForm': 'oneself', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': 1662021598000, 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': 1610879973961625602}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': '项目名称不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '项目名称不能为空', 'code': 500, 'data': None}\ntest_add_project_05 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_06", "description": "项目名称不能大于30位", "spendTime": "0.297s", "status": "成功", "log": ["用例入参:{'name': '1234567890123456789012345678901', 'planId': '1610880131042504706', 'practiceForm': 'oneself', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': 1662021598000, 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': 1610879973961625602}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': '名称不能超过30', 'code': 500, 'data': None}\n实际结果: {'msg': '名称不能超过30', 'code': 500, 'data': None}\ntest_add_project_06 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_07", "description": "实习计划不能为空", "spendTime": "0.297s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:38_7', 'planId': '', 'practiceForm': 'oneself', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': 1662021598000, 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': 1610879973961625602}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': '计划不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '计划不能为空', 'code': 500, 'data': None}\ntest_add_project_07 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_08", "description": "实习计划不匹配", "spendTime": "0.298s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:38_8', 'planId': '1610468261604655106', 'practiceForm': 'oneself', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': 1662021598000, 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': 1610879973961625602}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': '计划信息不存在', 'code': 500, 'data': None}\n实际结果: {'msg': '计划信息不存在', 'code': 500, 'data': None}\ntest_add_project_08 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_09", "description": "实习形式不能为空", "spendTime": "0.285s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:39_9', 'planId': '1610880131042504706', 'practiceForm': '', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': 1662021598000, 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': 1610879973961625602}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': '实习形式不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '实习形式不能为空', 'code': 500, 'data': None}\ntest_add_project_09 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_10", "description": "实习形式填写错误", "spendTime": "0.351s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:39_10', 'planId': '1610880131042504706', 'practiceForm': 'onelf', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': 1662021598000, 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': 1610879973961625602}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': '实习形式填写错误', 'code': 500, 'data': None}\n实际结果: {'msg': '实习形式填写错误', 'code': 500, 'data': None}\ntest_add_project_10 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_11", "description": "实习要求不填写,添加成功", "spendTime": "0.461s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:39_11', 'planId': '1610880131042504706', 'practiceForm': 'oneself', 'joinWay': '', 'requirement': '', 'startTime': 1662021598000, 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': 1610879973961625602}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_project_11 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_12", "description": "实习要求不能大于500", "spendTime": "0.293s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:40_12', 'planId': '1610880131042504706', 'practiceForm': 'oneself', 'joinWay': 'need', 'requirement': '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890', 'startTime': 1662021598000, 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': 1610879973961625602}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': '实习要求不能超过500', 'code': 500, 'data': None}\n实际结果: {'msg': '实习要求不能超过500', 'code': 500, 'data': None}\ntest_add_project_12 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_13", "description": "实习开始时间不能为空", "spendTime": "0.278s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:40_13', 'planId': '1610880131042504706', 'practiceForm': 'oneself', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': '', 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': 1610879973961625602}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': '实习开始时间不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '实习开始时间不能为空', 'code': 500, 'data': None}\ntest_add_project_13 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_14", "description": "实习结束时间不能为空", "spendTime": "0.281s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:40_14', 'planId': '1610880131042504706', 'practiceForm': 'oneself', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': 1662021598000, 'endTime': '', 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': 1610879973961625602}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': '实习结束时间不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '实习结束时间不能为空', 'code': 500, 'data': None}\ntest_add_project_14 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_15", "description": "项目开始日期需早于项目结束日期", "spendTime": "0.292s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:40_15', 'planId': '1610880131042504706', 'practiceForm': 'oneself', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': 1693557598000, 'endTime': 1662021598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': 1610879973961625602}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': '项目开始日期需早于项目结束日期', 'code': 500, 'data': None}\n实际结果: {'msg': '项目开始日期需早于项目结束日期', 'code': 500, 'data': None}\ntest_add_project_15 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_16", "description": "报名审核填写错误(后期在做修改,目前不做改动-0104)", "spendTime": "1.83s", "status": "失败", "log": ['用例入参:{\'name\': \'py自动化项目20230105_14:05:41_16\', \'planId\': \'1610880131042504706\', \'practiceForm\': \'oneself\', \'joinWay\': \'need\', \'requirement\': \'实习要求\', \'startTime\': 1662021598000, \'endTime\': 1693557598000, \'applyStartTime\': \'\', \'applyEndTime\': \'\', \'applyAudit\': \'nd\', \'oneselfFillCompanyInfo\': \'allow\', \'participantList\': [{\'studentIds\': [\'1610880065028354050\'], \'teacherId\': 1610879973961625602}], \'jobIds\': [\'1610468861604655106\']}\n预期结果: {\'msg\': \'报名审核填写错误\', \'code\': 500, \'data\': None}\n实际结果: {\'msg\': \'success\', \'code\': 200, \'data\': True}\ntest_add_project_16 (test_04_Internship_preparation.Test03InternshipProject)执行——>【失败Failure】\nTraceback (most recent call last):\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 291, in test_add_project\n raise e\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 284, in test_add_project\n self.assertEqual(expected[\'msg\'], res[\'msg\'])\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual\n assertion_func(first, second, msg=msg)\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual\n self.fail(self._formatMessage(msg, standardMsg))\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail\n raise self.failureException(msg)\nAssertionError: \'报名审核填写错误\' != \'success\'\n- 报名审核填写错误\n+ success\n\n================test_add_project_16 (test_04_Internship_preparation.Test03InternshipProject)重运行第1次================\n用例入参:{\'name\': \'py自动化项目20230105_14:05:41_16\', \'planId\': \'1610880131042504706\', \'practiceForm\': \'oneself\', \'joinWay\': \'need\', \'requirement\': \'实习要求\', \'startTime\': 1662021598000, \'endTime\': 1693557598000, \'applyStartTime\': \'\', \'applyEndTime\': \'\', \'applyAudit\': \'nd\', \'oneselfFillCompanyInfo\': \'allow\', \'participantList\': [{\'studentIds\': [\'1610880065028354050\'], \'teacherId\': 1610879973961625602}], \'jobIds\': [\'1610468861604655106\']}\n预期结果: {\'msg\': \'报名审核填写错误\', \'code\': 500, \'data\': None}\n实际结果: {\'msg\': \'项目名称已存在\', \'code\': 500, \'data\': None}\ntest_add_project_16 (test_04_Internship_preparation.Test03InternshipProject)执行——>【失败Failure】\nTraceback (most recent call last):\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 291, in test_add_project\n raise e\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 284, in test_add_project\n self.assertEqual(expected[\'msg\'], res[\'msg\'])\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual\n assertion_func(first, second, msg=msg)\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual\n self.fail(self._formatMessage(msg, standardMsg))\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail\n raise self.failureException(msg)\nAssertionError: \'报名审核填写错误\' != \'项目名称已存在\'\n- 报名审核填写错误\n+ 项目名称已存在\n\n================test_add_project_16 (test_04_Internship_preparation.Test03InternshipProject)重运行第2次================\n用例入参:{\'name\': \'py自动化项目20230105_14:05:41_16\', \'planId\': \'1610880131042504706\', \'practiceForm\': \'oneself\', \'joinWay\': \'need\', \'requirement\': \'实习要求\', \'startTime\': 1662021598000, \'endTime\': 1693557598000, \'applyStartTime\': \'\', \'applyEndTime\': \'\', \'applyAudit\': \'nd\', \'oneselfFillCompanyInfo\': \'allow\', \'participantList\': [{\'studentIds\': [\'1610880065028354050\'], \'teacherId\': 1610879973961625602}], \'jobIds\': [\'1610468861604655106\']}\n预期结果: {\'msg\': \'报名审核填写错误\', \'code\': 500, \'data\': None}\n实际结果: {\'msg\': \'项目名称已存在\', \'code\': 500, \'data\': None}\ntest_add_project_16 (test_04_Internship_preparation.Test03InternshipProject)执行——>【失败Failure】\nTraceback (most recent call last):\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 291, in test_add_project\n raise e\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 284, in test_add_project\n self.assertEqual(expected[\'msg\'], res[\'msg\'])\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual\n assertion_func(first, second, msg=msg)\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual\n self.fail(self._formatMessage(msg, standardMsg))\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail\n raise self.failureException(msg)\nAssertionError: \'报名审核填写错误\' != \'项目名称已存在\'\n- 报名审核填写错误\n+ 项目名称已存在\n\n================test_add_project_16 (test_04_Internship_preparation.Test03InternshipProject)重运行第3次================\n用例入参:{\'name\': \'py自动化项目20230105_14:05:41_16\', \'planId\': \'1610880131042504706\', \'practiceForm\': \'oneself\', \'joinWay\': \'need\', \'requirement\': \'实习要求\', \'startTime\': 1662021598000, \'endTime\': 1693557598000, \'applyStartTime\': \'\', \'applyEndTime\': \'\', \'applyAudit\': \'nd\', \'oneselfFillCompanyInfo\': \'allow\', \'participantList\': [{\'studentIds\': [\'1610880065028354050\'], \'teacherId\': 1610879973961625602}], \'jobIds\': [\'1610468861604655106\']}\n预期结果: {\'msg\': \'报名审核填写错误\', \'code\': 500, \'data\': None}\n实际结果: {\'msg\': \'项目名称已存在\', \'code\': 500, \'data\': None}\ntest_add_project_16 (test_04_Internship_preparation.Test03InternshipProject)执行——>【失败】\n', 'Traceback (most recent call last):\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n', ' File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n', ' File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 291, in test_add_project\n raise e\n', ' File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 284, in test_add_project\n self.assertEqual(expected[\'msg\'], res[\'msg\'])\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual\n assertion_func(first, second, msg=msg)\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual\n self.fail(self._formatMessage(msg, standardMsg))\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail\n raise self.failureException(msg)\n', "AssertionError: '报名审核填写错误' != '项目名称已存在'\n- 报名审核填写错误\n+ 项目名称已存在\n\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_17", "description": "报名审核不能为空(后期在做修改,目前不做改动-0104)", "spendTime": "1.8s", "status": "失败", "log": ['用例入参:{\'name\': \'py自动化项目20230105_14:05:43_17\', \'planId\': \'1610880131042504706\', \'practiceForm\': \'oneself\', \'joinWay\': \'need\', \'requirement\': \'实习要求\', \'startTime\': 1662021598000, \'endTime\': 1693557598000, \'applyStartTime\': \'\', \'applyEndTime\': \'\', \'applyAudit\': \'\', \'oneselfFillCompanyInfo\': \'allow\', \'participantList\': [{\'studentIds\': [\'1610880065028354050\'], \'teacherId\': 1610879973961625602}], \'jobIds\': [\'1610468861604655106\']}\n预期结果: {\'msg\': \'报名审核不能为空\', \'code\': 500, \'data\': None}\n实际结果: {\'msg\': \'success\', \'code\': 200, \'data\': True}\ntest_add_project_17 (test_04_Internship_preparation.Test03InternshipProject)执行——>【失败Failure】\nTraceback (most recent call last):\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 291, in test_add_project\n raise e\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 284, in test_add_project\n self.assertEqual(expected[\'msg\'], res[\'msg\'])\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual\n assertion_func(first, second, msg=msg)\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual\n self.fail(self._formatMessage(msg, standardMsg))\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail\n raise self.failureException(msg)\nAssertionError: \'报名审核不能为空\' != \'success\'\n- 报名审核不能为空\n+ success\n\n================test_add_project_17 (test_04_Internship_preparation.Test03InternshipProject)重运行第1次================\n用例入参:{\'name\': \'py自动化项目20230105_14:05:43_17\', \'planId\': \'1610880131042504706\', \'practiceForm\': \'oneself\', \'joinWay\': \'need\', \'requirement\': \'实习要求\', \'startTime\': 1662021598000, \'endTime\': 1693557598000, \'applyStartTime\': \'\', \'applyEndTime\': \'\', \'applyAudit\': \'\', \'oneselfFillCompanyInfo\': \'allow\', \'participantList\': [{\'studentIds\': [\'1610880065028354050\'], \'teacherId\': 1610879973961625602}], \'jobIds\': [\'1610468861604655106\']}\n预期结果: {\'msg\': \'报名审核不能为空\', \'code\': 500, \'data\': None}\n实际结果: {\'msg\': \'项目名称已存在\', \'code\': 500, \'data\': None}\ntest_add_project_17 (test_04_Internship_preparation.Test03InternshipProject)执行——>【失败Failure】\nTraceback (most recent call last):\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 291, in test_add_project\n raise e\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 284, in test_add_project\n self.assertEqual(expected[\'msg\'], res[\'msg\'])\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual\n assertion_func(first, second, msg=msg)\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual\n self.fail(self._formatMessage(msg, standardMsg))\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail\n raise self.failureException(msg)\nAssertionError: \'报名审核不能为空\' != \'项目名称已存在\'\n- 报名审核不能为空\n+ 项目名称已存在\n\n================test_add_project_17 (test_04_Internship_preparation.Test03InternshipProject)重运行第2次================\n用例入参:{\'name\': \'py自动化项目20230105_14:05:43_17\', \'planId\': \'1610880131042504706\', \'practiceForm\': \'oneself\', \'joinWay\': \'need\', \'requirement\': \'实习要求\', \'startTime\': 1662021598000, \'endTime\': 1693557598000, \'applyStartTime\': \'\', \'applyEndTime\': \'\', \'applyAudit\': \'\', \'oneselfFillCompanyInfo\': \'allow\', \'participantList\': [{\'studentIds\': [\'1610880065028354050\'], \'teacherId\': 1610879973961625602}], \'jobIds\': [\'1610468861604655106\']}\n预期结果: {\'msg\': \'报名审核不能为空\', \'code\': 500, \'data\': None}\n实际结果: {\'msg\': \'项目名称已存在\', \'code\': 500, \'data\': None}\ntest_add_project_17 (test_04_Internship_preparation.Test03InternshipProject)执行——>【失败Failure】\nTraceback (most recent call last):\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 291, in test_add_project\n raise e\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 284, in test_add_project\n self.assertEqual(expected[\'msg\'], res[\'msg\'])\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual\n assertion_func(first, second, msg=msg)\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual\n self.fail(self._formatMessage(msg, standardMsg))\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail\n raise self.failureException(msg)\nAssertionError: \'报名审核不能为空\' != \'项目名称已存在\'\n- 报名审核不能为空\n+ 项目名称已存在\n\n================test_add_project_17 (test_04_Internship_preparation.Test03InternshipProject)重运行第3次================\n用例入参:{\'name\': \'py自动化项目20230105_14:05:43_17\', \'planId\': \'1610880131042504706\', \'practiceForm\': \'oneself\', \'joinWay\': \'need\', \'requirement\': \'实习要求\', \'startTime\': 1662021598000, \'endTime\': 1693557598000, \'applyStartTime\': \'\', \'applyEndTime\': \'\', \'applyAudit\': \'\', \'oneselfFillCompanyInfo\': \'allow\', \'participantList\': [{\'studentIds\': [\'1610880065028354050\'], \'teacherId\': 1610879973961625602}], \'jobIds\': [\'1610468861604655106\']}\n预期结果: {\'msg\': \'报名审核不能为空\', \'code\': 500, \'data\': None}\n实际结果: {\'msg\': \'项目名称已存在\', \'code\': 500, \'data\': None}\ntest_add_project_17 (test_04_Internship_preparation.Test03InternshipProject)执行——>【失败】\n', 'Traceback (most recent call last):\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n', ' File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n', ' File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 291, in test_add_project\n raise e\n', ' File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 284, in test_add_project\n self.assertEqual(expected[\'msg\'], res[\'msg\'])\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual\n assertion_func(first, second, msg=msg)\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual\n self.fail(self._formatMessage(msg, standardMsg))\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail\n raise self.failureException(msg)\n', "AssertionError: '报名审核不能为空' != '项目名称已存在'\n- 报名审核不能为空\n+ 项目名称已存在\n\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_18", "description": "自行填报企业信息填写错误(后期在做修改,目前不做改动-0104)", "spendTime": "1.77s", "status": "失败", "log": ['用例入参:{\'name\': \'py自动化项目20230105_14:05:44_18\', \'planId\': \'1610880131042504706\', \'practiceForm\': \'oneself\', \'joinWay\': \'need\', \'requirement\': \'实习要求\', \'startTime\': 1662021598000, \'endTime\': 1693557598000, \'applyStartTime\': \'\', \'applyEndTime\': \'\', \'applyAudit\': \'need\', \'oneselfFillCompanyInfo\': \'aow\', \'participantList\': [{\'studentIds\': [\'1610880065028354050\'], \'teacherId\': 1610879973961625602}], \'jobIds\': [\'1610468861604655106\']}\n预期结果: {\'msg\': \'实习计划不匹配\', \'code\': 500, \'data\': None}\n实际结果: {\'msg\': \'success\', \'code\': 200, \'data\': True}\ntest_add_project_18 (test_04_Internship_preparation.Test03InternshipProject)执行——>【失败Failure】\nTraceback (most recent call last):\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 291, in test_add_project\n raise e\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 284, in test_add_project\n self.assertEqual(expected[\'msg\'], res[\'msg\'])\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual\n assertion_func(first, second, msg=msg)\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual\n self.fail(self._formatMessage(msg, standardMsg))\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail\n raise self.failureException(msg)\nAssertionError: \'实习计划不匹配\' != \'success\'\n- 实习计划不匹配\n+ success\n\n================test_add_project_18 (test_04_Internship_preparation.Test03InternshipProject)重运行第1次================\n用例入参:{\'name\': \'py自动化项目20230105_14:05:44_18\', \'planId\': \'1610880131042504706\', \'practiceForm\': \'oneself\', \'joinWay\': \'need\', \'requirement\': \'实习要求\', \'startTime\': 1662021598000, \'endTime\': 1693557598000, \'applyStartTime\': \'\', \'applyEndTime\': \'\', \'applyAudit\': \'need\', \'oneselfFillCompanyInfo\': \'aow\', \'participantList\': [{\'studentIds\': [\'1610880065028354050\'], \'teacherId\': 1610879973961625602}], \'jobIds\': [\'1610468861604655106\']}\n预期结果: {\'msg\': \'实习计划不匹配\', \'code\': 500, \'data\': None}\n实际结果: {\'msg\': \'项目名称已存在\', \'code\': 500, \'data\': None}\ntest_add_project_18 (test_04_Internship_preparation.Test03InternshipProject)执行——>【失败Failure】\nTraceback (most recent call last):\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 291, in test_add_project\n raise e\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 284, in test_add_project\n self.assertEqual(expected[\'msg\'], res[\'msg\'])\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual\n assertion_func(first, second, msg=msg)\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual\n self.fail(self._formatMessage(msg, standardMsg))\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail\n raise self.failureException(msg)\nAssertionError: \'实习计划不匹配\' != \'项目名称已存在\'\n- 实习计划不匹配\n+ 项目名称已存在\n\n================test_add_project_18 (test_04_Internship_preparation.Test03InternshipProject)重运行第2次================\n用例入参:{\'name\': \'py自动化项目20230105_14:05:44_18\', \'planId\': \'1610880131042504706\', \'practiceForm\': \'oneself\', \'joinWay\': \'need\', \'requirement\': \'实习要求\', \'startTime\': 1662021598000, \'endTime\': 1693557598000, \'applyStartTime\': \'\', \'applyEndTime\': \'\', \'applyAudit\': \'need\', \'oneselfFillCompanyInfo\': \'aow\', \'participantList\': [{\'studentIds\': [\'1610880065028354050\'], \'teacherId\': 1610879973961625602}], \'jobIds\': [\'1610468861604655106\']}\n预期结果: {\'msg\': \'实习计划不匹配\', \'code\': 500, \'data\': None}\n实际结果: {\'msg\': \'项目名称已存在\', \'code\': 500, \'data\': None}\ntest_add_project_18 (test_04_Internship_preparation.Test03InternshipProject)执行——>【失败Failure】\nTraceback (most recent call last):\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 291, in test_add_project\n raise e\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 284, in test_add_project\n self.assertEqual(expected[\'msg\'], res[\'msg\'])\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual\n assertion_func(first, second, msg=msg)\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual\n self.fail(self._formatMessage(msg, standardMsg))\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail\n raise self.failureException(msg)\nAssertionError: \'实习计划不匹配\' != \'项目名称已存在\'\n- 实习计划不匹配\n+ 项目名称已存在\n\n================test_add_project_18 (test_04_Internship_preparation.Test03InternshipProject)重运行第3次================\n用例入参:{\'name\': \'py自动化项目20230105_14:05:44_18\', \'planId\': \'1610880131042504706\', \'practiceForm\': \'oneself\', \'joinWay\': \'need\', \'requirement\': \'实习要求\', \'startTime\': 1662021598000, \'endTime\': 1693557598000, \'applyStartTime\': \'\', \'applyEndTime\': \'\', \'applyAudit\': \'need\', \'oneselfFillCompanyInfo\': \'aow\', \'participantList\': [{\'studentIds\': [\'1610880065028354050\'], \'teacherId\': 1610879973961625602}], \'jobIds\': [\'1610468861604655106\']}\n预期结果: {\'msg\': \'实习计划不匹配\', \'code\': 500, \'data\': None}\n实际结果: {\'msg\': \'项目名称已存在\', \'code\': 500, \'data\': None}\ntest_add_project_18 (test_04_Internship_preparation.Test03InternshipProject)执行——>【失败】\n', 'Traceback (most recent call last):\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n', ' File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n', ' File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 291, in test_add_project\n raise e\n', ' File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 284, in test_add_project\n self.assertEqual(expected[\'msg\'], res[\'msg\'])\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual\n assertion_func(first, second, msg=msg)\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual\n self.fail(self._formatMessage(msg, standardMsg))\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail\n raise self.failureException(msg)\n', "AssertionError: '实习计划不匹配' != '项目名称已存在'\n- 实习计划不匹配\n+ 项目名称已存在\n\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_19", "description": "自行填报企业信息不能为空(后期在做修改,目前不做改动-0104)", "spendTime": "1.73s", "status": "失败", "log": ['用例入参:{\'name\': \'py自动化项目20230105_14:05:46_19\', \'planId\': \'1610880131042504706\', \'practiceForm\': \'oneself\', \'joinWay\': \'need\', \'requirement\': \'实习要求\', \'startTime\': 1662021598000, \'endTime\': 1693557598000, \'applyStartTime\': \'\', \'applyEndTime\': \'\', \'applyAudit\': \'need\', \'oneselfFillCompanyInfo\': \'\', \'participantList\': [{\'studentIds\': [\'1610880065028354050\'], \'teacherId\': 1610879973961625602}], \'jobIds\': [\'1610468861604655106\']}\n预期结果: {\'msg\': \'自行填报企业信息不能为空\', \'code\': 500, \'data\': None}\n实际结果: {\'msg\': \'success\', \'code\': 200, \'data\': True}\ntest_add_project_19 (test_04_Internship_preparation.Test03InternshipProject)执行——>【失败Failure】\nTraceback (most recent call last):\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 291, in test_add_project\n raise e\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 284, in test_add_project\n self.assertEqual(expected[\'msg\'], res[\'msg\'])\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual\n assertion_func(first, second, msg=msg)\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual\n self.fail(self._formatMessage(msg, standardMsg))\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail\n raise self.failureException(msg)\nAssertionError: \'自行填报企业信息不能为空\' != \'success\'\n- 自行填报企业信息不能为空\n+ success\n\n================test_add_project_19 (test_04_Internship_preparation.Test03InternshipProject)重运行第1次================\n用例入参:{\'name\': \'py自动化项目20230105_14:05:46_19\', \'planId\': \'1610880131042504706\', \'practiceForm\': \'oneself\', \'joinWay\': \'need\', \'requirement\': \'实习要求\', \'startTime\': 1662021598000, \'endTime\': 1693557598000, \'applyStartTime\': \'\', \'applyEndTime\': \'\', \'applyAudit\': \'need\', \'oneselfFillCompanyInfo\': \'\', \'participantList\': [{\'studentIds\': [\'1610880065028354050\'], \'teacherId\': 1610879973961625602}], \'jobIds\': [\'1610468861604655106\']}\n预期结果: {\'msg\': \'自行填报企业信息不能为空\', \'code\': 500, \'data\': None}\n实际结果: {\'msg\': \'项目名称已存在\', \'code\': 500, \'data\': None}\ntest_add_project_19 (test_04_Internship_preparation.Test03InternshipProject)执行——>【失败Failure】\nTraceback (most recent call last):\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 291, in test_add_project\n raise e\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 284, in test_add_project\n self.assertEqual(expected[\'msg\'], res[\'msg\'])\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual\n assertion_func(first, second, msg=msg)\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual\n self.fail(self._formatMessage(msg, standardMsg))\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail\n raise self.failureException(msg)\nAssertionError: \'自行填报企业信息不能为空\' != \'项目名称已存在\'\n- 自行填报企业信息不能为空\n+ 项目名称已存在\n\n================test_add_project_19 (test_04_Internship_preparation.Test03InternshipProject)重运行第2次================\n用例入参:{\'name\': \'py自动化项目20230105_14:05:46_19\', \'planId\': \'1610880131042504706\', \'practiceForm\': \'oneself\', \'joinWay\': \'need\', \'requirement\': \'实习要求\', \'startTime\': 1662021598000, \'endTime\': 1693557598000, \'applyStartTime\': \'\', \'applyEndTime\': \'\', \'applyAudit\': \'need\', \'oneselfFillCompanyInfo\': \'\', \'participantList\': [{\'studentIds\': [\'1610880065028354050\'], \'teacherId\': 1610879973961625602}], \'jobIds\': [\'1610468861604655106\']}\n预期结果: {\'msg\': \'自行填报企业信息不能为空\', \'code\': 500, \'data\': None}\n实际结果: {\'msg\': \'项目名称已存在\', \'code\': 500, \'data\': None}\ntest_add_project_19 (test_04_Internship_preparation.Test03InternshipProject)执行——>【失败Failure】\nTraceback (most recent call last):\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 291, in test_add_project\n raise e\n File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 284, in test_add_project\n self.assertEqual(expected[\'msg\'], res[\'msg\'])\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual\n assertion_func(first, second, msg=msg)\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual\n self.fail(self._formatMessage(msg, standardMsg))\n File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail\n raise self.failureException(msg)\nAssertionError: \'自行填报企业信息不能为空\' != \'项目名称已存在\'\n- 自行填报企业信息不能为空\n+ 项目名称已存在\n\n================test_add_project_19 (test_04_Internship_preparation.Test03InternshipProject)重运行第3次================\n用例入参:{\'name\': \'py自动化项目20230105_14:05:46_19\', \'planId\': \'1610880131042504706\', \'practiceForm\': \'oneself\', \'joinWay\': \'need\', \'requirement\': \'实习要求\', \'startTime\': 1662021598000, \'endTime\': 1693557598000, \'applyStartTime\': \'\', \'applyEndTime\': \'\', \'applyAudit\': \'need\', \'oneselfFillCompanyInfo\': \'\', \'participantList\': [{\'studentIds\': [\'1610880065028354050\'], \'teacherId\': 1610879973961625602}], \'jobIds\': [\'1610468861604655106\']}\n预期结果: {\'msg\': \'自行填报企业信息不能为空\', \'code\': 500, \'data\': None}\n实际结果: {\'msg\': \'项目名称已存在\', \'code\': 500, \'data\': None}\ntest_add_project_19 (test_04_Internship_preparation.Test03InternshipProject)执行——>【失败】\n', 'Traceback (most recent call last):\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor\n yield\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run\n testMethod()\n', ' File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper\n return func(self, *args, **kwargs)\n', ' File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 291, in test_add_project\n raise e\n', ' File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_04_Internship_preparation.py", line 284, in test_add_project\n self.assertEqual(expected[\'msg\'], res[\'msg\'])\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual\n assertion_func(first, second, msg=msg)\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual\n self.fail(self._formatMessage(msg, standardMsg))\n', ' File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail\n raise self.failureException(msg)\n', "AssertionError: '自行填报企业信息不能为空' != '项目名称已存在'\n- 自行填报企业信息不能为空\n+ 项目名称已存在\n\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_20", "description": "参与学生不能为空", "spendTime": "0.335s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:48_20', 'planId': '1610880131042504706', 'practiceForm': 'oneself', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': 1662021598000, 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': [], 'teacherId': 1610879973961625602}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': '参与学生不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '参与学生不能为空', 'code': 500, 'data': None}\ntest_add_project_20 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_21", "description": "参与学生填写错误", "spendTime": "0.36s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:48_21', 'planId': '1610880131042504706', 'practiceForm': 'oneself', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': 1662021598000, 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': ['160468861604655106'], 'teacherId': 1610879973961625602}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': '学生信息不正确', 'code': 500, 'data': None}\n实际结果: {'msg': '学生信息不正确', 'code': 500, 'data': None}\ntest_add_project_21 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_22", "description": "关联指定老师不填写,添加成功", "spendTime": "0.379s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:49_22', 'planId': '1610880131042504706', 'practiceForm': 'oneself', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': 1662021598000, 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': ''}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': 'success', 'code': 200, 'data': True}\n实际结果: {'msg': 'success', 'code': 200, 'data': True}\ntest_add_project_22 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_23", "description": "关联指定老师填写错误", "spendTime": "0.318s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:49_23', 'planId': '1610880131042504706', 'practiceForm': 'oneself', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': 1662021598000, 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': 16104688616046551}], 'jobIds': ['1610468861604655106']}\n预期结果: {'msg': '关联指定老师填写错误', 'code': 500, 'data': None}\n实际结果: {'msg': '关联指定老师填写错误', 'code': 500, 'data': None}\ntest_add_project_23 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_24", "description": "推荐岗位不能为空", "spendTime": "0.282s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:49_24', 'planId': '1610880131042504706', 'practiceForm': 'oneself', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': 1662021598000, 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': 1610879973961625602}], 'jobIds': []}\n预期结果: {'msg': '岗位不能为空', 'code': 500, 'data': None}\n实际结果: {'msg': '岗位不能为空', 'code': 500, 'data': None}\ntest_add_project_24 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, { "className": "Test03InternshipProject", "methodName": "test_add_project_25", "description": "推荐岗位填写错误", "spendTime": "0.421s", "status": "成功", "log": ["用例入参:{'name': 'py自动化项目20230105_14:05:50_25', 'planId': '1610880131042504706', 'practiceForm': 'oneself', 'joinWay': 'need', 'requirement': '实习要求', 'startTime': 1662021598000, 'endTime': 1693557598000, 'applyStartTime': '', 'applyEndTime': '', 'applyAudit': 'need', 'oneselfFillCompanyInfo': 'allow', 'participantList': [{'studentIds': ['1610880065028354050'], 'teacherId': 1610879973961625602}], 'jobIds': ['161046884655106']}\n预期结果: {'msg': '推荐岗位填写错误', 'code': 500, 'data': None}\n实际结果: {'msg': '推荐岗位填写错误', 'code': 500, 'data': None}\ntest_add_project_25 (test_04_Internship_preparation.Test03InternshipProject)执行——>【通过】\n"] }, ], "testName": "石头", "testAll": "147", "testFail": "4", "beginTime": "2023-01-05 14:04:25", "totalTime": "84.58 S", "testSkip": "0", "testError": "1" }; function details(obj) { if ($(obj).text() == '展开') { var len = $(obj).parent().parent().children().length; var detailLog = ""; var logs = resultData["testResult"][parseInt($(obj).attr("buttonIndex"))]["log"]; $(obj).text("收缩"); $(obj).removeClass("btn-primary"); $(obj).addClass("btn-danger"); $.each(logs, function (i, n) { detailLog = detailLog + "<p>" + n + "</p>"; }); $(obj).parent().parent().after("<tr><td colspan='" + len + "'><div style='font-family: Consolas;font-size:12px'>" + detailLog + "</div></td></tr>"); } else if ($(obj).text() == '收缩') { $(obj).parent().parent().next().remove(); $(obj).text("展开"); $(obj).removeClass("btn-danger"); $(obj).addClass("btn-primary"); } } $(function () { $("#testName").text(resultData["testName"]); $("#testPass").text(resultData["testPass"]); $("#testFail").text(resultData["testFail"]); $("#testSkip").text(resultData["testSkip"]); $("#testAll").text(resultData["testAll"]); $("#beginTime").text(resultData["beginTime"]); $("#totalTime").text(resultData["totalTime"]); var classNames = []; var results = []; $.each(resultData["testResult"], function (i, n) { if (classNames.indexOf(n["className"]) == -1) { classNames.push(n["className"]); } if (results.indexOf(n["status"]) == -1) { results.push(n["status"]); } }); $.each(classNames, function (i, n) { $("#filterClass").append("<option value='" + n + "' hassubinfo='true'>" + n + "</option>"); }); $.each(results, function (i, n) { $("#filterResult").append("<option value='" + n + "' hassubinfo='true'>" + n + "</option>"); }); $("#filterClass").chosen({search_contains: true}); $("#filterResult").chosen({search_contains: true}); var errorFlag = false; function generateResult(className, caseResult) { $("#detailBody").children().remove(); var filterAll = 0; var filterOk = 0; var filterFail = 0; var filterSkip = 0; $.each(resultData["testResult"], function (i, n) { if ((className == "" || n["className"] == className) && (caseResult == "" || n["status"] == caseResult)) { filterAll += 1; var status = ""; if (n["status"] == '成功') { filterOk += 1; status = "<td><span class='text-success'>成功</span></td>"; } else if (n["status"] == '失败') { filterFail += 1; status = "<td><span class='text-danger'>失败</span></td>"; } else if (n["status"] == '错误') { filterFail += 1; errorFlag = true; status = "<td><span class='text-danger'>错误</span></td>"; } else if (n["status"] == '跳过') { filterSkip += 1; status = "<td><span class='text-warning'>跳过</span></td>"; } else { status = "<td><span>" + n["status"] + "</span></td>"; } var tr = "<tr style='font-family: Consolas'>" + "<td>" + (i + 1) + "</td>" + "<td>" + n["className"] + "</td>" + "<td>" + n["methodName"] + "</td>" + "<td>" + n["description"] + "</td>" + "<td>" + n["spendTime"] + "</td>" + status + "<td><button type='button' onclick='details(this)' buttonIndex='" + i + "' class='btn btn-primary btn-xs' style='margin-bottom: 0px'>展开</button></td></tr>" $("#detailBody").append(tr); } }); $("#filterAll").text(filterAll); $("#filterOk").text(filterOk); $("#filterFail").text(filterFail); $("#filterSkip").text(filterSkip); } generateResult("", ""); $("#alert-tips").hide(); if (errorFlag) { $("#alert-tips").show(); } $("#filterClass").on('change', function () { var className = $("#filterClass").val(); var caseResult = $("#filterResult").val(); generateResult(className, caseResult); }); $("#filterResult").on('change', function () { var className = $("#filterClass").val(); var caseResult = $("#filterResult").val(); generateResult(className, caseResult); }); //$(".chosen-select").trigger("chosen:updated"); function pie() { var option = { title: { text: '测试用例运行结果', subtext: '', x: 'center', textStyle: { "color": "#555" } }, tooltip: { trigger: 'item', formatter: "{a} <br/>{b} : {c} ({d}%)" }, legend: { orient: 'vertical', y: 'center', x: 'right', data: ['失败','跳过','错误', '成功',] }, series: [ { name: '运行结果', type: 'pie', radius: '55%', center: ['50%', '60%'], data: [ {value: resultData["testFail"], name: '失败'}, {value: resultData["testSkip"], name: '跳过'}, {value: resultData["testError"], name: '错误'}, {value: resultData["testPass"], name: '成功'} ], color: [ "#F25929", "#777777", "#cc2e29", "#70AD47" ], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ] }; var chart = echarts.init(document.getElementById("echarts-map-chart")); chart.setOption(option); } pie(); }); </script> </body> </html>