К сожалению, нет «предыдущего» селектора, но вы можете , возможно, получить тот же эффект, используя позиционирование (например, float right). Это зависит от того, что вы пытаетесь сделать.
В моем случае я хотел получить первую 5-звездочную рейтинговую систему CSS. Мне нужно было бы покрасить (или поменять значок) предыдущих звезд. Если плавать каждый элемент вправо, я по сути получаю тот же эффект (html для звезд, таким образом, должен быть записан «назад»).
Я использую FontAwesome в этом примере и заменяю между юникодами fa -star-o и fa-star http://fortawesome.github.io/Font-Awesome/
CSS:
.fa {
display: inline-block;
font-family: FontAwesome;
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* set all stars to 'empty star' */
.stars-container {
display: inline-block;
}
/* set all stars to 'empty star' */
.stars-container .star {
float: right;
display: inline-block;
padding: 2px;
color: orange;
cursor: pointer;
}
.stars-container .star:before {
content: "\f006"; /* fontAwesome empty star code */
}
/* set hovered star to 'filled star' */
.star:hover:before{
content: "\f005"; /* fontAwesome filled star code */
}
/* set all stars after hovered to'filled star'
** it will appear that it selects all after due to positioning */
.star:hover ~ .star:before {
content: "\f005"; /* fontAwesome filled star code */
}
HTML: (40)
Быстрый ответ с 2019 для NUnit 3.0. Возможно использовать несколько категорий.
Рассматривают следующий пример:
[TestFixture]
public class Tests1
{
[Test]
[Category("A")]
public void TestA()
{
Console.WriteLine(TestContext.CurrentContext.Test.Name);
}
[Test]
[Category("B")]
public void TestB()
{
Console.WriteLine(TestContext.CurrentContext.Test.Name);
}
[Test]
[Category("C")]
public void TestC()
{
Console.WriteLine(TestContext.CurrentContext.Test.Name);
}
[Test]
[Category("A")]
[Category("B")]
public void TestAB()
{
Console.WriteLine(TestContext.CurrentContext.Test.Name);
}
[Test]
[Category("A")]
[Category("C")]
public void TestAC()
{
Console.WriteLine(TestContext.CurrentContext.Test.Name);
}
[Test]
[Category("B")]
[Category("C")]
public void TestBC()
{
Console.WriteLine(TestContext.CurrentContext.Test.Name);
}
[Test]
[Category("A")]
[Category("B")]
[Category("C")]
public void TestABC()
{
Console.WriteLine(TestContext.CurrentContext.Test.Name);
}
}
можно запустить тесты с обеими категориями A
и B
и, исключая категорию C
использование этого аргумента команды: --where="cat==A && cat==B && cat!=C"
Или можно запустить тесты с любой из категорий A
и B
и, исключая C
как это: --where="(cat==A || cat==B) && cat!=C"
Насколько я знаю, вы не можете выбрать их обоих, как NUnit.
Я пробовал несколько разных вещей с NUnit и способ создания моих тестов, но безуспешно .
Я нашел сайт , который рассказывает вам о процессе создания настраиваемых атрибутов категории, но до сих пор не понимаю, как это может помочь.
Нет. Не существует способа запускать только тесты, которые принадлежат к двум или более определенным категориям. Честно говоря, когда мы впервые ввели эту функцию несколько лет назад, я даже не думал об этом. Мы старались сделать все как можно проще.
Кстати, вам не нужно указывать [Test]
дважды в методе test3
.
[Test]
[Category("catA")]
[Category("catB")]
public void test3
{
//
}
Не то чтобы это имело значение. Это просто предпочтение стиля.